vperyod/session-handler
Composer 安装命令:
composer require vperyod/session-handler
包简介
PSR7 Aura\Session Handler
README 文档
README
Aura\Session handler middleware
Installation
composer require vperyod/session-handler
Usage
See Aura\Session documentation.
Basic Session
<?php // Create handler, optionally passing Aura\SessionFactory instance $handler = new Vperyod\SessionHandler\SessionHandler($sessionFactory); // Optionally set the `SessionAttribute`, the name of the attribute on which to // store the `Session` in the `Request`. Defaults to 'aura/session:session' $handler->setSessionAttribute('session'); // Add to your middleware stack, radar, relay, etc. $stack->middleware($handler); // Subsequest dealings with `Request` will have the `Session` instance available at // the previous specified atribute $session = $request->getAttribute('session'); // The `SessionRequestAwareTrait` should make dealings easier. // // Have all your objects that deal with the session attribute on the request use // the `SessionRequestAwareTrait` and have your DI container use the setter, so that // they all know where the session object is stored. class MyMiddleware { use \Vperyod\SessionHandler\SessionRequestAwareTrait; public function __invoke($request, $response, $next) { $session = $this->getSession($request); // ... do stuff with session... return $next($request, $response); } } // Getting input for an action from a session class MyInputExtractor { use \Vperyod\SessionHandler\SessionRequestAwareTrait; public function __invoke($request) { return [ 'session' => $this->getSession($request), 'data' => $request->getParsedBody() ]; } } // Flash messaging in a responder class MyAbstractResponder { use \Vperyod\SessionHandler\SessionRequestAwareTrait; //... public function success() { $this->getSession($this->request) ->getSegment('My\\Messages') ->setFlash('message', 'You have Successfully Done Something!'); return $this->redirect(); } public function renderView() { $messages = $this->getSession($this->request) ->getSegment('My\\Messages') ->getFlash('message'); $this->view->addData(['messages' => $messages]); // ... } }
CSRF Handler
use \Vperyod\SessionHandler\SessionHandler; use \Vperyod\SessionHandler\CsrfHandler; $csrfFail = function ($request, $response, $next) { $response->getBody()->write('FAIL'); return $response; } $session = new SessionHandler(); $csrf = new CsrfHandler($csrfFail); // optionally pass a fail responder callable $stack->middleware($session); // make sure sesison handler is first $stack->middleware($csrf); // SessionRequestAwareTrait will provide methods for passing CSRF info to View class MyAbstractResponder { use SessionRequestAwareTrait; public function renderView() { // ... $this->view->addData(['csrf' => $this->getCsrfSpec()]); // [ // 'type' => 'hidden', // 'name' => '__csrf_token', // 'value' => $csrfValue // ] // ... } } // in view using aura/html $this->input($this->csrf);
vperyod/session-handler 适用场景与选型建议
vperyod/session-handler 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 156 次下载、GitHub Stars 达 1, 最近一次更新时间为 2016 年 02 月 21 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 vperyod/session-handler 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 vperyod/session-handler 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 156
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 2
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2016-02-21