Zend_Registry n'a pas besoin de Singleton pour faire son job, il pourrait tout faire en static, et d'ailleurs c'est en static que je l'utilise. Pour moi c'est un outil, il n'a pas de vie. Cependant, ils ont fait le choix de le mettre en objet, condition sine qua non à
l'implémentation de l'héritage de ArrayObject. Du coup, ils doivent passer à l'objet, et là il y aurait incohérence à en instancier plusieurs. Ils auraient aussi pu travailler que sur le static, mais j'imagine que ça perd de son sens ici.
D'ailleurs, assez drôle, Zend_Registry dans son code utilisé l'objet même dans ses méthodes statiques (il fait appel à son propre getInstance()), alors qu'il n'est pas destiné à être multiton (pluriton

), à côté Zend_Session_Namespace qui autorise plusieurs instances vers la même donnée utilise le statique dans ses méthodes d'objet pour garder le même état des instances. En quelque sorte, totalement le contraire. Ca me fait presque penser à faire un new Voiture('rouge') qui renverrait l'instance d'une instanciation précédente de la même couleur. Ce qui est bien, et à la fois pas, c'est que l'on peut faire la même chose en 58 façons différentes avec Zend. Zend_Session_Namespace permet tout à fait d'instancier en singleton. Quand on est anxieux comme moi et que l'on a pas 30 ans de développement derrière soit, ça créé forcément plein de questions (mais j'ai pas attendu le framework pour ça

).
Je me permets de citer ma question d'origine pour se reconcentrer sur le sujet (ceux qui n'ont pas déjà répondu) :
Partager