Может быть, я просто не вижу этого, но есть ли другой способ получить доступ к ранее созданному пространству имен сеанса, кроме прямого вызова $_SESSION
?Помимо того, что я действительно не хочу этого делать, документация Zend также советует против этого :
, пока $ _SESSION все еще доступна вГлобальное пространство имен PHP, разработчики должны воздерживаться от прямого доступа к нему, чтобы Zend_Session и Zend_Session_Namespace могли наиболее эффективно и безопасно предоставлять набор функций, связанных с сеансами.
Класс Zend_Session_Namespace не имеет статического методаполучение пространства имен, и хотя теперь устаревший метод namespaceGet
в Zend_Session указывает мне использовать Zend_Session_Namespace#getIterator
, этот метод не является статическим.
Так что это означаетМне нужно инициализировать новое пространство имен, используя ключевое слово new
.Проблема в том, что это не включает ранее установленные переменные:
$ns = new Zend_Session_Namespace('foo');
$ns->foo = 'bar';
При последующем запросе это:
print_R(new Zend_Session_Namespace('Foo'));
... печатает это:
Zend_Session_Namespace Object
(
[_namespace:protected] => Foo
)
что кажется очевидным.
Итак, как мне получить ранее созданное пространство имен без использования $_SESSION['Foo']
?