我的模块中有两个控制器,它们都需要查看用户是否登录。登录控制器使用 DbTable 对用户进行身份验证并将身份写入存储。
我正在使用 >Zend\Authentication\AuthenticationService;$auth = new AuthenticationService();
在控制器函数内部,但随后我在多个 pageAction() 上实例化它的实例
为此,我在 Module.php 中编写了一个函数
如下
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();
}
),
);
}
正如你所看到的,我每次都返回新的 AuthenticationService() 我认为这是不好的。我找不到如何获取已经实例化的服务实例,或者我必须为此编写一个单例类。请告知任何具有更深入解释的示例代码片段将受到高度重视和赞赏,谢谢。