Once
- Object
- Once
Une classe Once ne crée qu'une seule instance.
MÉTHODES DE CLASSE
- namespace Once;
- require_once 'So-o.php';
- defclass('Once', null, 1, array('instance'), null, array('new'), null);
La classe Once hérite de la classe Object. La propriété de classe instance garde l'unique instance de la classe. La classe Once redéfinit le message de classe new.
new
SYNOPSIS
sendmsg($class, 'new'[, $arg ...])
DESCRIPTION
La première fois que new est appelée, elle retourne une nouvelle instance de $class
.
Les fois suivantes, elle retourne cette même instance de $class
.
new passe tous les paramètres $arg
du message à init.
CODE
- namespace Once;
- require_once 'So-o.php';
- defclass('Once', null, 1, array('instance'), null, array('new'), null);
La classe Once hérite directement de la classe Object. Elle garde la seule instance qu'elle crée dans la propriété de classe instance. Elle redéfinit le message de classe new.
- function c_new($self) {
- $i=sendmsg($self, 'get', 'instance');
- if (!$i) {
- $i=supersend('new', func_get_args());
- sendmsg($self, 'set', 'instance', $i);
- }
- return $i;
- }
new
récupère la propriété de classe instance.
Si cette propriété n'a pas encore de valeur, new
crée une nouvelle instance en appelant la méthode new
héritée de la classe Object avec les arguments du message et sauvegarde la nouvelle instance dans la propriété de classe instance.
new
retourne l'instance qui a été sauvegardée ou la nouvelle instance.
Commentaires