Intereting Posts
Laravel … Автоматически выполнять скрипт через несколько часов Получить http-statuscode без тела с помощью cURL? Создать изображение из URL-адреса Любой тип файла Кнопка javascript с помощью curl Как получить расширение файла? Использование PHP для разделения содержимого сайта Пуштотификция в идентификаторах нескольких ордеров Phongap android одного и того же устройства Создание подписи для заголовка аутентификации в PHP – Paypal cakephp 1.3, как использовать Paginator-> sort () для двух столбцов? преобразовать массив в строку и вернуть его в массив на PHP Новый токен CSRF за запрос или NOT? Как я могу получить доступ к свойству объекта, названному как переменная в php? Найти каждое воскресенье между двумя датами Проверьте, включены ли файлы cookie Пользовательская таксономия и пользовательский тип сообщения с пользовательским разбиением на страницы 404 не найдены

Кто-нибудь создал класс, похожий на PHP, в код пользователя (не родной)?

Собственная функциональность PHP Session отлично, но в конечном итоге это синглтон. Бывают случаи, когда вам необходимо поддерживать состояние для нескольких приложений и в рамках уже начатого сеанса (например, в рамках приложения). Технически можно остановить / перезапустить сеанс после изменения session_name() , но это нецелесообразно / невозможно / небезопасно в большинстве приложений. Использование shared session.save_path также не является опцией, если одно приложение хранит данные сеанса с помощью недискового адаптера.

Нет причин, чтобы функциональность в собственных сеансах не могла быть выполнена в коде пользователя, так кто-нибудь это сделал?

Обновление 1: CI_Session действительно представляет собой пользовательскую реализацию с полезным кодом, но она очень тесно связана с CodeIgniter.

Обновление 2: Вот API, который был бы замечательным:

 // setup $saveHandler = new UserlandSession_SaveHandler_Files('5;/tmp'); $sess = new UserlandSession($saveHandler); $sess->name('PHPSESSID2'); $sess->gc_maxlifetime = 86400; $sess->setProxy($state); // passed by ref // usage $sess->start(); // stored string unserialized to $state $state['foo'] = 'bar'; $sess->write_close(); // $state serialized to storage 

Обновление 3: Я написал реализацию для PHP5.3.

CodeIgniter имеет класс сеанса , который не использует собственные PHP-сессии.

Я написал UserlandSession в ответ на это.

Это чистая реализация PHP «сеансов», которая может использоваться для соединения сеанса между произвольными PHP-приложениями. Он не вмешивается в собственные сессии, имеет API-интерфейс OO (более похожий на PHP 5.4) и имеет API, похожий на собственные сеансы.

Он поставляется с файловыми системами и обработчиками хранения PDO и интерфейсом, чтобы упростить создание собственных.