one23/phalcon2laravel 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

one23/phalcon2laravel

最新稳定版本:1.0.2

Composer 安装命令:

composer require one23/phalcon2laravel

包简介

Phalcon 5 DB session adapter in Laravel format

README 文档

README

Phalcon DB session adapter in laravel format

Install

composer require one23/phalcon2laravel

Create default laravel session table

CREATE TABLE `sessions` (
  `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  `user_id` bigint unsigned DEFAULT NULL,
  `ip_address` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `user_agent` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
  `payload` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  `last_activity` int NOT NULL,
  PRIMARY KEY (`id`),
  KEY `sessions_user_id_index` (`user_id`),
  KEY `sessions_last_activity_index` (`last_activity`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci

Quick usage

$adapter = new \One23\Phalcon2laravel\Session\Adapter\Db([
    'db' => function() {
        $di = \Phalcon\Di\Di::getDefault();

        return $di->get('db');
    }, // required instance of Phalcon\Db\Adapter\AbstractAdapter
    'table' => 'sessions', // Session table in DB. Default: sessions
    'serialize_handler' => 'php_serialize', // Session serialize handler. For laravel default: serialize_handler 
    'ip' => '127.0.0.1', // User IP. Default: $request->getClientAddress() 
    'user' => function() {
        return 1;
    }, // Closure with return user id (int). Default: null 
    'cookie_name' => 'laravel_session', // required. Laravel session cookie name (required for decrypt)
    'lifetime'      => 3600, // Session lifetime. Default: 3600 
]);

// or with decrypt Laravel active session (can use phalcon + laravel together)

$adapter = new \One23\Phalcon2laravel\Session\Adapter\LaravelDb([
    'db' => function() {
        $di = \Phalcon\Di\Di::getDefault();

        return $di->get('db');
    }, // required instance of Phalcon\Db\Adapter\AbstractAdapter
    'table' => 'sessions', // Session table in DB. Default: sessions
    'serialize_handler' => 'php_serialize', // Session serialize handler. For laravel default: serialize_handler 
    'ip' => '127.0.0.1', // User IP. Default: $request->getClientAddress() 
    'user' => function() {
        return 1;
    }, // Closure with return user id (int). Default: null 
    'laravel_key'    => 'abc123', // required. Laravel app secret
    'laravel_chiper' => 'AES-256-CBC', // Laravel app secret chiper

    'cookie_name' => 'laravel_session', // required. Laravel session cookie name (required for decrypt)
    'lifetime'      => 3600, // Session lifetime. Default: 3600 
]);

$sessionManager = new \One23\Phalcon2laravel\Session\Manager();

$sessionManager
    ->setName($adapter->getLaravelSessionCookieName())
    ->setAdapter($adapter);
    
$sessionManager->start();

API Methods

\One23\Phalcon2laravel\Session\Manager

existId(string $sessionId): bool

$sessionManager->existId('abc123'); // => bool

generateCustomId(): string

$sessionManager->generateCustomId(); // => 'eyJpdiI6IldBcGRIU2p...FnIjoiIn0='

\One23\Phalcon2laravel\Session\Adapter\Db

Cookie session id without encrypt

exist($sessionId): bool

$adapter->exist('abc123'); // => true 

getCookieName(): string

$adapter->getCookieName(); // => 'laravel_session' 

\One23\Phalcon2laravel\Session\Adapter\LaravelDb (extends \One23\Phalcon2laravel\Session\Adapter\Db)

Cookie session id with laravel encrypt

exist($sessionId): bool

$adapter->exist('eyJpdiI6IldBcGRIU2p...FnIjoiIn0='); // => true 

decryptSessionId(string $sessionId): ?string

$adapter->decryptSessionId('eyJpdiI6IldBcGRIU2p...FnIjoiIn0='); // => 'abc123'

encryptSessionId(string $sessionId): ?string

$adapter->encryptSessionId('abc123'); // => 'eyJpdiI6IldBcGRIU2p...FnIjoiIn0='

isEncryptSessionId(string $sessionId): bool

$adapter->isEncryptSessionId('eyJpdiI6IldBcGRIU2p...FnIjoiIn0='); // => true

Security

If you discover any security related issues, please email eugene@krivoruchko.info instead of using the issue tracker.

License

MIT

统计信息

  • 总下载量: 8
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2022-12-02

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固