Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 06-01-2013 09:58:20

MichaelB
Membre
Date d'inscription: 27-06-2010
Messages: 21

Plugins dans ZF2 ?

Hello!

Dans ZF1 j'utilisais des plugins "maison" qui étendaient "Zend_Controller_Plugin_Abstract" en routeStartup ou preDispatch pour charger une config (css, js, route, navigation, depuis la db, etc.) en tout début de la requête selon par exemple le "nom de domaine" courant.

Avec ZF2 (je débute) je ne comprends pas où et comment je peux créer des plugins comme je le faisais précédemment.

Ces plugins doivent être en tout début de requête et non dans un controller.

Merci de votre aide..

Michael

Hors ligne

 

#2 07-01-2013 09:37:53

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: Plugins dans ZF2 ?

Salut, si j'ai bien compris ce que tu veux faire, je dirais que ça se passe côté évènement. Tu dois attacher un évènement au moment où tu as besoin d’exécuter ton code.

Cependant dans ZF2 tu peux créer des plugins utilisable directement dans ton contrôleur ou même des aides de vues parfois c'est suffisant. Les aides de vue dans le layout sont assez utile car c'est global à tout ton application (si c'est nécessaire forcément)

Hors ligne

 

#3 11-01-2013 13:53:35

MichaelB
Membre
Date d'inscription: 27-06-2010
Messages: 21

Re: Plugins dans ZF2 ?

En fait ces plugins doivent être exécutés au tout début de requête. Avant d'arriver au controller.

Exemples:

- Je charge la navigation ou/et les routes depuis ma db.
- Je charge une config depuis la db en fonction de url (nom de domaine)

Je dois avoir ces infos avant d'arriver dans mes controllers. Donc apparemment c'est maintenant géré avec les events oui mais ca reste vraiment flou dans la doc et dans ma tête...

Hors ligne

 

#4 11-01-2013 14:25:38

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: Plugins dans ZF2 ?

Tu as l'évènement "dispatch" qui se situe juste avant d'arriver dans le contrôleur si je dis pas de bêtises. Donc tu peux attacher une fonction à cet évènement

Hors ligne

 

#5 11-01-2013 21:26:42

bakura
Administrateur
Date d'inscription: 30-01-2010
Messages: 353

Re: Plugins dans ZF2 ?

Effectivement, tu as l'évènement dispatch qui est lancé après l'opération de routage. Après faut régler sa priorité pour que ton écouteur (listener) soit lancé avant ceux du framework. Là j'ai écrit de la documentation sur tous les évènements lancés par le framework. C'est pas encore terminé mais si ça peut t'aider : https://github.com/bakura10/zf2-documen … -event.rst

Si tu as besoin encore plus tôt, tu peux ajouter un écouteur à l'évènement MvcEvent::ROUTE, qui est exécuté pour le routage (et dans ce cas là, tu es sûr à 100% d'arriver avant le contrôleur). Après tu as des évènements encore plus tôt (comme MvcEvent::BOOTSTRAP). Ca dépend surtout des informations dont tu as besoin qui déterminent quels évènements écouter.

Hors ligne

 

#6 18-01-2013 21:29:22

MichaelB
Membre
Date d'inscription: 27-06-2010
Messages: 21

Re: Plugins dans ZF2 ?

Merci pour ta réponse, ta documentation m'a aidé mais tout me parait super compliqué à mettre en place avec ZF2 si je compare avec ZF1..

C'est du basique probablement mais je ne comprends pas..

Je voudrais dans une classe, exemple My\ListenerTest (dans vendor ?) écouter l'event "dispatch" et à ce moment là, récupérer une config depuis ma DB avant tout autre initialisation (avant d'entrer dans le module et controller). La partie db ensuite c'est ok je pense, j'appelle un mapper, etc.

1° Comment et où (quel fichier) je déclare cette nouvelle classe dans l'autoload pour qu'il soit utilisable ?
2° Comment une fonction à l'intérieur de cette classe est elle déclenchée ?

Il y a différents exemples sur le net mais aucun n'est vraiment clair. Il est aussi probable que je comprends tout à l'envers ;-)

Je veux juste faire des traitements (chargement d'une config ou de routes depuis ma db comme je le faisais avec ZF1) avant d'arriver dans les controllers ou modules. Par contre apparemment il n'y pas plus de Registry, bon ca c'est un autre problème que je verrai plus tard..


Peux-tu stp éclaircir ceci ?

Merci d'avance!

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages