Я пишу, чтобы узнать, столкнулся ли кто-то из вас с этой проблемой раньше, и у меня есть шанс понять, почему это случилось со мной.Странное поведение Zend_Session с использованием Zend_Application
Это история.
Я разработал множество приложений ZF до Zend Framework версии 1.8, после чего я остановился около 18 месяцев. Теперь мне пришлось начать новый проект, на котором я решил снова использовать Zend Framework.
На моем локальном сервере у меня установлена версия 1.11.3, поэтому я не загрузил последнюю версию.
Перед использованием Zend_Application с файлом Bootstrap.php я использовал, чтобы начать занятия положить свои параметры сеанса в моем файле config.ini, а затем загружать их в экземпляр класса Zend_Session, как это:
config.ini
sessions.name = NAME
sessions.use_only_cookies = 1
sessions.save_path = APPLICATION_PATH "/../tmp/sessions"
sessions.strict = on
sessions.remember_me_seconds = 1800
index.php (в директорию открытой веб-сервере) перед запуском приложения:
Globals::startSession();
пользовательских Globals класса с различным полезным метамфетамин в.п.с.:
class Globals
{
static public function startSession()
{
$sessions_conf = self::getConfig()->sessions;
Zend_Session::setOptions($sessions_conf->toArray(););
Zend_Session::start();
}
}
Это всегда работал очень хорошо, позволяя мои сеансы (используется Zend_Session_Namespace) и хранения файлов сессий в save_path.
С Zend_Application руководство говорит, чтобы просто хранить параметры сеанса в Application.ini файле под «раздела» ресурсы и Zend_Session будут настроены автоматически ...
Я сделал это так:
; SESSIONS
resources.session.name = NAME
resources.session.use_only_cookies = 1
resources.session.save_path = APPLICATION_PATH "/../tmp/sessions"
resources.session.strict = on
resources.session.remember_me_seconds = 1800
Это не сработало. Так что я пытался использовать (не одновременно!) В _initSession() и _initForceSession() в файле Bootstrap.php, помещая их в начале класса и писать в них код:
$this->bootstrap('session');
Но сеанс никогда не работал, данные не сохранялись между HTTP-запросами, а файлы сеанса никогда не записывались в save_path ...
Может ли кто-нибудь, пожалуйста, сообщить мне, если это нормальное поведение (возможно, я пропустил что-то где-то ...)?
Очевидно, я решил проблему с повторным внедрением моего старого метода (и он отлично работает), но я хотел бы узнать, как правильно его использовать.
Заранее спасибо.
Вы могли бы разместить код для своих _initSession() и _initForceSession() (если они отличаются)? –
Нет, код тот же, есть только вызов Zend_Session :: start(); – Alessandro