ray/symfony-session-module
Composer 安装命令:
composer require ray/symfony-session-module
包简介
A Symfony Session Module for Ray.Di
关键字:
README 文档
README
A Symfony Session Module for Ray.Di
Installation
Composer install
$ composer require ray/symfony-session-module
Module install
PdoSessionModule (e.g. for MySQL)
-
Create
sessionstable in your database.$ ./vendor/ray/symfony-session-module/bin/initPdoSession 'mysql:host=localhost;dbname=mydb' 'myname' 'mypass'
-
Install module.
use Ray\Di\AbstractModule; use Ray\SymfonySessionModule\PdoSessionModule; class AppModule extends AbstractModule { protected function configure() { $pdo = new \PDO('mysql:host=localhost;dbname=mydb', 'myname', 'mypass'); $options = [ 'cookie_secure' => 1, 'cookie_httponly' => 1, 'cookie_lifetime' => 60 * 60 * 24 ]; $this->install(new PdoSessionModule($pdo, $options)); } }
DI trait
- SessionInject for
Symfony\Component\HttpFoundation\Session\SessionInterfaceinterface
Session lifetime management
For each request, your application can check whether session cookie is expired or not. If session cookie is expired, SessionExpiredException is thrown.
Configuration
-
Install
SessionalModule.use Ray\Di\AbstractModule; use Ray\SymfonySessionModule\PdoSessionModule; use Ray\SymfonySessionModule\SessionalModule; class AppModule extends AbstractModule { protected function configure() { $this->install(new PdoSessionModule($pdo, $options)); $this->install(new SessionalModule); // <-- } }
-
Mark the class or method with
@Sessionalannotation.When any method in the class marked with
@Sessionalis executed, session is automatically started and session cookie is checked.use Ray\SymfonySessionModule\Annotation\Sessional; /** * @Sessional */ class SomeController { public function fooAction() { // session is automatically started and session cookie is checked. } }
When the method marked with
@Sessionalis executed, session is automatically started and session cookie is checked.use Ray\SymfonySessionModule\Annotation\Sessional; class SomeController { /** * @Sessional */ public function fooAction() { // session is automatically started and session cookie is checked. } public function barAction() { // session is NOT started. } }
Unit Testing
MockSessionModule provides in-memory session mechanism for unit testing. Any session data are not persisted to the storage.
use Ray\Di\AbstractModule; use Ray\SymfonySessionModule\MockSessionModule; use Ray\SymfonySessionModule\SessionalModule; class AppModule extends AbstractModule { protected function configure() { $this->install(new MockSessionModule); // <-- $this->install(new SessionalModule); } }
Demo
$ php docs/demo/run.php
// Session is started!
Requirements
- PHP 5.6+
- hhvm
More Documents
- the official documentation about Session Management of Symfony
ray/symfony-session-module 适用场景与选型建议
ray/symfony-session-module 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 73 次下载、GitHub Stars 达 2, 最近一次更新时间为 2016 年 07 月 04 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「Ray.Di」 「Symfony Session」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 ray/symfony-session-module 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 ray/symfony-session-module 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 ray/symfony-session-module 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
aura/web module for Ray.Di
Validation module for Ray.Di
Secure session middleware for Slim 3 framework
Web Form module for Ray.Di
The bundle for easy using json-rpc api on your project
Non-I/O blocking PHP SessionHandler implementation using Nette/Caching with DI Extension for Nette framework
统计信息
- 总下载量: 73
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 9
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2016-07-04