私はこのようなコードを持っています:
$sessionOptions = new SessionDbSavehandlerOptions();
$sessionOptions->setDataColumn('data')
->setIdColumn('id')
->setModifiedColumn('modified')
->setLifetimeColumn('lifetime')
->setNameColumn('name');
$application = $event->getApplication();
$serviceManager = $application->getServiceManager();
$dbAdapter = $serviceManager->get('Zend\Db\Adapter\Adapter');
$sessionTableGateway = new TableGateway('zf2_sessions', $dbAdapter);
$sessionGateway = new DbTableGateway($sessionTableGateway, $sessionOptions);
$config = $serviceManager->get('Configuration');
$sessionConfig = new SessionConfig();
$sessionConfig->setOptions($config['session']);
$sessionManager = new SessionManager($sessionConfig);
$sessionManager->setSaveHandler($sessionGateway);
$sessionManager->start();
Container::setDefaultManager($sessionManager);
うまく動作しますが、このコードはファイル内のonBootstrap()
メソッドにありModule.php
ます。セッションを実装するためのより良い方法 (場所?) はありますか? Controller プラグインは Controller 用ですが、これは何ですか?