Modemde iki denetleyicim var ve bunların her ikisi de, kullanıcının oturum açıp açmayacağını görmeli. Giriş denetleyicileri, DbTable kullanarak kullanıcının kimliğini doğrular ve kimliği depoya yazar.zend framework 2 AuthenticationService
> Zend \ Authentication \ AuthenticationService kullanıyorum; $ auth = yeni AuthenticationService(); As you can
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();
}
),
);
}
şöyle sonra
denetleyici işlevi içindeama ben Module.php
içine bir fonksiyon yazdım bunun için çoklu pageAction()
üzerindeki örneğini Ben kötü olduğunu düşündüğüm her zaman yeni AuthenticationService() döndürüyor bakın. Hizmetin zaten örneklenmiş örneğini veya 'u nasıl yakalayacağımı bulamadım, bunun için tek bir sınıf yazmam gerekiyor. Lütfen daha derin açıklamayla örnek kod snipetlerinin yüksek saygınlık ve takdirle karşılanması için teşekkür edin.
public function getServiceConfig()
{
return array(
'aliases' => array(
'Application\Config\DbAdapter' => 'Zend\Db\Adapter\Adapter',
'Admin\Authentication\Service' => 'Zend\Authentication\AuthenticationService',
),
'factories' => array(
'Admin\Model\PagesTable' => function ($serviceManager) {
$dbAdapter = $serviceManager->get('Application\Config\DbAdapter');
$tableGateway = new TableGateway('pages', $dbAdapter);
$pagesTable = new PagesTable($tableGateway);
return $pagesTable;
},
),
);
}
Not ağırlıklı kök dizinin Aliases bölümü, herhangi bir başka sadece görsel değişiklikler yapılmıştır ve böyle bir fabrika kullanmak gibi (eğer önerilen özgün bir şekilde yapmayı tercih edilebilir:
Veya bir modül belirli bir hizmet olması istemiyorsanız tabii, sadece kullanabilirsiniz $ serviceManager-> get ('Zend \ Authentication \ AuthenticationService') ; – ise
tam olarak aradığım için teşekkürler @ise. –