Каков наилучший способ начать работу в Zend Framework 2? Я попытался установить session_start()
в моем файле index.php, но затем он запускается до того, как будут загружены загружаемые автозагрузчики, что приведет к неполным объектам, сидящим на моих сеансах.
В ZF1 вы можете инициализировать сеансы, добавив некоторые параметры в конфигурацию, но я не понимаю, как это сделать в ZF2.
Если я правильно вас понимаю, все, что вы хотите сделать, – это правильно работать в ваших модулях? Предполагая, что это правильно, есть два отдельных шага.
1) Создайте конфигурацию: module.config.php
return array( 'session' => array( 'remember_me_seconds' => 2419200, 'use_cookies' => true, 'cookie_httponly' => true, ), );
2) Запустите сеанс: Module.php
use Zend\Session\Config\SessionConfig; use Zend\Session\SessionManager; use Zend\Session\Container; use Zend\EventManager\EventInterface; public function onBootstrap(EventInterface $evm) { $config = $evm->getApplication() ->getServiceManager() ->get('Configuration'); $sessionConfig = new SessionConfig(); $sessionConfig->setOptions($config['session']); $sessionManager = new SessionManager($sessionConfig); $sessionManager->start(); /** * Optional: If you later want to use namespaces, you can already store the * Manager in the shared (static) Container (=namespace) field */ Container::setDefaultManager($sessionManager); }
Найти дополнительные параметры в документации по \ Zend \ Session \ Config \ SessionConfig
Если вы хотите хранить файлы cookie тоже, пожалуйста, ознакомьтесь с этим вопросом . Кредиты Андреасу Линдену за его первоначальный ответ – я просто копирую его.