initphp / sessions
InitPHP Sessions Manager
3.0
2023-12-16 03:47 UTC
Requires
- php: >=8.0
README
Requirements
- PHP 8.0 or later
Note : Adapters used may have different dependencies.
Installation
composer require initphp/sessions
Usage
require_once "vendor/autoload.php"; use InitPHP\Sessions\Session; Session::createImmutable() ->start(); Session::set('username', 'admin') ->set('mail', 'admin@example.com'); /** * OR * * $_SESSION['username'] = 'admin'; * $_SESSION['mail'] = 'admin@example.com'; */ echo Session::get('username', 'Undefined'); /** * OR * * echo $_SESSION['username'] ?? 'Undefined'; */
Redis Adapter Usage
require_once "vendor/autoload.php"; use InitPHP\Sessions\Session; use InitPHP\Sessions\Adapters\RedisAdapter; $adapter = new RedisAdapter([ 'host' => '127.0.0.1', // string 'port' => 6379, // int 'timeout' => 0, // int 'password' => null, // null or string 'database' => 0, 'ttl' => 86400, 'prefix' => 'sess' ]); Session::createImmutable($adapter) ->start();
PDO Adapter Usage
require_once "vendor/autoload.php"; use InitPHP\Sessions\Session; use InitPHP\Sessions\Adapters\PDOAdapter; $pdo = new \PDO('mysql:host=localhost;dbname=test', 'root', ''); $adapter = new PDOAdapter(['pdo' => $pdo, 'table' => 'app_sessions']); Session::createImmutable($adapter) ->start();
Example MySQL Table Create SQL :
CREATE TABLE `sessions` ( `id` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, `sess_timestamp` timestamp NULL DEFAULT NULL, `sess_ip_address` varchar(48) COLLATE utf8mb4_unicode_ci DEFAULT NULL `sess_data` text COLLATE utf8mb4_unicode_ci NOT NULL, ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ALTER TABLE `sessions` ADD PRIMARY KEY (`id`);
Memcache Adapter Usage
require_once "vendor/autoload.php"; use InitPHP\Sessions\Session; use InitPHP\Sessions\Adapters\MemCacheAdapter; $adapter = new MemCacheAdapter([ 'host' => '127.0.0.1', // string 'port' => 11211, // int 'weight' => 1, // int 'raw' => false, // boolean 'prefix' => null, // null or string 'ttl' => 86400, // int ]); Session::createImmutable($adapter) ->start();
Cookie Adapter Usage
require_once "vendor/autoload.php"; use InitPHP\Sessions\Session; use InitPHP\Sessions\Adapters\CookieAdapter; $adapter = new CookieAdapter(['name' => 'sessDataCookieName', 'key' => 'topSecretAppKey', 'ttl' => 86400]); Session::createImmutable($adapter) ->start();
MongoDB Adapter Usage
require_once "vendor/autoload.php"; use InitPHP\Sessions\Session; use InitPHP\Sessions\Adapters\MongoDBAdapter; $adapter = new MongoDBAdapter(['dsn' => 'mongodb://127.0.0.1:27017', 'collation' => 'sessDbName.sessCollectionName']); Session::createImmutable($adapter) ->start();
Credits
License
Copyright © 2022 MIT License