モジュールに 2 つのコントローラーがあり、どちらもユーザーがログインしているかどうかを確認する必要があります。ログイン コントローラーは、DbTable を使用してユーザーを認証し、ID をストレージに書き込みます。
>Zend\Authentication\AuthenticationService; を使用しています。$auth = 新しい 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();
}
),
);
}
ご覧のとおり、毎回 new AuthenticationService() を返していますが、これは悪いと思います。既にインスタンス化されたサービスのインスタンスを取得する方法が見つからなかったか、このためにシングルトン クラスを作成する必要がありました。より深い説明を含むサンプル コード スニペットがあれば、高く評価され、感謝されることをお知らせください。