J'ai deux contrôleurs dans mon module et tous les deux ont besoin de voir si l'utilisateur est connecté ou non. Les contrôleurs de connexion authentifie l'utilisateur à l'aide de DbTable et écrit l'identité dans le stockage. J'utilise> Zend \ Authentication \ AuthenticationService; $ auth = new AuthenticationService();zend framework 2 AuthenticationService
dans la fonction de contrôleur, mais alors j'instancier son instance sur plusieurs pageaction()
pour ce que j'ai écrit une fonction dans le module.php
comme suit
public function getServiceConfig()
{
return array(
'factories' => array(
'Application\Config\DbAdapter' => function ($sm) {
$dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
return $dbAdapter;
},
'Admin\Model\PagesTable' => function($sm){
$dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
$pagesTable = new PagesTable(new TableGateway('pages',$dbAdapter));
return $pagesTable;
},
'Admin\Authentication\Service' => function($sm){
return new AuthenticationService();
}
),
);
}
Comme vous pouvez voyez je retourne le nouveau AuthenticationService() chaque fois que je pense est mauvais. Je ne pouvais pas trouver comment attraper l'instance déjà instanciée du service ou je dois écrire une classe singleton pour cela. S'il vous plaît aviser tout échantillon de code snipets avec une explication plus approfondie serait très apprécié et apprécié merci.
Ou bien sûr, si vous ne voulez pas avoir un service spécifique du module, vous pouvez simplement utiliser $ serviceManager-> get ('Zend \ Authentication \ AuthenticationService') ; – ise
merci @ise c'était exactement ce que je cherchais. –