Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Hey,
Je me lance dans ZF2, mais ou est donc passé mon Zend_Registry !?
Quel est le meilleur équivalent maintenant pour faire la même chose ?
Merci beaucoup par avance
Hors ligne
Salut,
Registry a disparu. La raison principale est que Registry était utilisé à tort. Sous ZF 1, il était la plupart du temps utilisé dans le but de gérer les dépendances entre les objets (par exemple, de nombreux composants accédaient au composant de traduction en le récupérant dans le registre). De ce fait, la plupart des développeurs l'utilisaient pour y stocker tout plein de choses afin de les récupérer un peu partout.
C'est une manière relativement sale de programmer (très compliqué d'y faire des tests unitaires, notamment). Maintenant, la gestion des dépendances fonctionnent exclusivement par le composant ServiceManager (ou éventuellement le Di pour les utilisateurs un peu plus "avancés" qui en comprennent les limitations et les possibilités), qui permet de définir de manière explicite et bien plus propre les différentes dépendances entre tes objets.
Je te suggère évidemment d'aller lire la documentation à ce sujet : http://packages.zendframework.com/docs/ … index.html
Ceci étant dit, le Registre a été complètement supprimé afin de pousser les utilisateurs à ne surtout pas l'utiliser (certains pourraient y être tentés par facilité), mais le Registre a parfois quelques cas d'utilisations pour lesquels le ServiceManager n'est pas très pratique.
Crois pas, c'est un mal pour un bien de ne plus avoir de Registry ;-).
Hors ligne
Salut,
C'était effectivement très pratique, le Registry.
J'ai lu (et re-relu) la doc mais je ne vois toujours pas comment stocker des infos comme je le faisais avant.
(je suis blonde mais ce n'est pas une raison ... je trouve la doc officielle et le DI un peu obscures ...)
Par exemple, des infos sur l'utilisateur provenant de la db et collectées au login.
Ou l'arborescence de ma navigation dynamique, toujours provenant de ma db au login (dépend de l'utilisateur), pour ne pas la relire à chaque fois.
Où et comment gérer tout ça?
Aurais-tu un petit exemple?
Merci
Hors ligne
Je ne sais pas si c'est propre mais stocker ça en session ne serait pas une solution ? Sinon je ne vois pas vraiment d'autre solution ... A moins qu'une classe statique déclarée par le service manager en mode partagée fasse l'affaire ?
Hors ligne
Oui, je pensais aussi à la session mais je trouvais ça un peu bof...
Je vais voir du côté des classes statiques.
Merci
Hors ligne
Oula oula évite les classes statiques et les "astuces" pour tenter de revenir à l'ancien comportement.
J'ai écrit un article il y a pas longtemps (http://www.michaelgallego.fr/blog/?p=208) - désolé en anglais -, qui pourrait peut-être t'aider à comprendre un peu la gestion des dépendances.
Dans ton cas précis, "des infos sur l'utilisateur provenant de la db et collectées au login" => pourquoi ne pas utiliser le composant Zend\Authentication\AuthenticationService ?
Je suis d'accord que cette nouvelle façon de penser au niveau des dépendances va dérouter de nombreuses personnes habituées au Registry, mais crois-moi, essaye vraiment de comprendre ce concept (c'est vrai qu'il manque un peu de doc), tes applications n'en seront que plus faciles à maintenir, à tester, à faire évoluer...
As-tu lu la partie "User Guide" : http://packages.zendframework.com/docs/ … index.html ?
Hors ligne