Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 17-05-2013 13:42:55

Sophie
Nouveau membre
Lieu: Paris
Date d'inscription: 08-03-2013
Messages: 2

Différences entre les event manager

Bonjour,

Petite question,

Qu'elle est la différence entre application->getEventManager() et application->getServiceManager()->get('eventManager')
A priori on devrait obtenir la même instance non ?
Pas sûre...

Si quelqu'un a un argument, je suis preneuse.

Hors ligne

 

#2 17-05-2013 14:20:00

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

Re: Différences entre les event manager

Salut Sophie, pour moi il n'y en a pas. En fait la classe Application implémente l'interface EventManagerAwareInterface ce qui veut dire que lorsque le service manager va l'instancier il va lui injecter l'eventManager et il va récupérer l'event manager de cette façon $serviceManager->get('EventManager'); donc que tu fasses $application->getEventManager() ou $application->getServiceManager()->get('EventManager') c'est la même chose. Dans le deuxième cas tu "parcours" plus de code puisque tu récupère le service manager pour ensuite récupérer l'event manager alors qu'il est déjà défini dans ta classe Application.

Hors ligne

 

#3 17-05-2013 16:20:27

jmleroux
Membre
Lieu: Nantes
Date d'inscription: 14-11-2012
Messages: 32
Site web

Re: Différences entre les event manager

Bonjour,

En fait, il y a une différence de taille et spécifique à ce service 'EventManager' : IL N'EST PAS "shared".

A ma connaissance, c'est le seul par défaut.
Ce qui veut dire que cet l'appel à

Code:

[lang=php]$application->getServiceManager()->get('EventManager')

te renverra une nouvelle instance d'un eventManger.

Alors que l'appel à

Code:

[lang=php]$application->getEventManager()

renvoie bien la même instance de l'eventManager lié à l'objet $application.

Dernière modification par jmleroux (17-05-2013 16:21:53)

Hors ligne

 

#4 17-05-2013 17:25:52

blanchonvincent
Membre
Lieu: Sophia Antipolis
Date d'inscription: 18-11-2009
Messages: 45
Site web

Re: Différences entre les event manager

Bonjour,

Comme le dit jmleroux, l'identifiant "EventManager" n'est pas marqué comme partagé. Si c'était le cas, cela poserait des problèmes car à chaque fois que tu souhaiterait récupérer un gestionnaire d'évènement, tu obtiendrais la même instance avec des écouteurs et évènements déjà rattachés.

Tu trouvera le flag non partage explicite ici : https://github.com/zendframework/zf2/bl … ig.php#L65

Hors ligne

 

#5 17-05-2013 17:50:29

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

Re: Différences entre les event manager

Et ben comme ça j'aurais appris un truc :p

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