Как установить имена для контейнеров сеанса Zend в приложении ZF3?
Когда я отлаживаю свое приложение и анализирую $_SESSION
, Я вижу три элемента корневого уровня: __ZF
, Zend_Validator_Csrf_salt_csrf
, а также myapp_auth
. Последний устанавливается явно. Я делаю это имя контейнера доступным в конфигах
...
'session_containers' => [
'myapp_common',
'myapp_auth',
],
...
и создать SessionStorage
с этим:
namespace Authentication\Service\Factory;
use Authentication\Service\AuthenticationService;
use Interop\Container\ContainerInterface;
use Zend\Authentication\Storage\Session as SessionStorage;
use Zend\ServiceManager\Factory\FactoryInterface;
use Zend\Session\SessionManager;
class AuthenticationServiceFactory implements FactoryInterface
{
/**
* @inheritDoc
*/
public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
{
$sessionManager = $container->get(SessionManager::class);
$authenticationStorage = new SessionStorage('myapp_auth', 'session', $sessionManager);
$authenticationAdapter = $container->get('AuthenticationAdapter');
return new AuthenticationService($authenticationStorage, $authenticationAdapter);
}
}
Возможно ли / Как управлять именами контейнеров сеанса ZF по умолчанию __ZF
а также Zend_Validator_Csrf_salt_csrf
?