Simple performance package for storage your sessions to database by native \PDO
.
It's best to use Composer for installation, and you can also find the package on Packagist and GitHub.
To install, simply use the command:
$ composer require baraja-core/session
You can use the package manually by creating an instance of the internal classes, or register a DIC extension to link the services directly to the Nette Framework.
And create database table core__session_storage
(table name can be configured) or use Doctrine for automatic generating.
MySql table schema:
SET NAMES utf8;
SET time_zone = '+00:00';
SET foreign_key_checks = 0;
SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
CREATE TABLE `core__session_storage` (
`id` varchar(26) COLLATE utf8_unicode_ci NOT NULL,
`haystack` longtext COLLATE utf8_unicode_ci NOT NULL,
`last_update` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Table can be used with Doctrine or alone.
In case of Nette framework simply use NEON configuration (defined in common.neon
file):
extensions:
barajaPdoSession: Baraja\Session\SessionExtension
Session storage will be configured automatically.
In case of native PHP simply create new SessionStorage
instance and create handler:
$handler = new \Baraja\Session\SessionStorage(
'127.0.0.1', // host
'my_application', // database name
'root', // user
'****' // password
);
session_set_save_handler($handler);
Warning: Session handler must be set before session has been started!
In case of custom table name you can rewrite default table name by 2 ways:
- Constructor
$table
argument - Setter
setTable()
Default table name is core__session_storage
.
Table name can be rewritten in runtime, but it's not recommended.
baraja-core/session
is licensed under the MIT license. See the LICENSE file for more details.