2012-12-07 22 views
6

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çinde

ama 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:

cevap

2

yerine bu deneyin bunu da taklit etmek yerine Zend \ Db \ Adapter \ Adapter örneğini almak için).

Saygılarımızla,

imkb

+0

Veya bir modül belirli bir hizmet olması istemiyorsanız tabii, sadece kullanabilirsiniz $ serviceManager-> get ('Zend \ Authentication \ AuthenticationService') ; – ise

+0

tam olarak aradığım için teşekkürler @ise. –