dczajkowski / colloquy
一个用于管理持久会话上下文的无框架包。
0.3.0
2018-11-26 04:39 UTC
Requires (Dev)
- mockery/mockery: ^1.2
- phpunit/phpunit: ^7.4
- scrutinizer/ocular: ^1.5
This package is auto-updated.
Last update: 2024-08-26 16:15:49 UTC
README
一个用于管理持久会话上下文的无框架包。
安装
composer install dczajkowski/colloquy
用法
使用注释自动模式
标识符解析器声明
<?php namespace App; class SessionIdentifierResolver implements \Colloquy\IdentifierResolverInterface { public function get($controller): string { return // code to get session id } }
上下文绑定
<?php \Colloquy\Colloquy::bind( 'session', new \App\SessionIdentifierResolver, new \Colloquy\Drivers\FileDriver($pathToWritableDirectory) );
在控制器中使用
<?php namespace App\Http\Controllers; /** @ColloquyContext('session') */ class FormController { use \Colloquy\ColloquyContexts; /** @ColloquyPersist */ protected $user; /** @ColloquyBegin */ private function step1() { $this->user = new \App\Models\User; } private function step2() { $this->user->name = 'John'; } /** @ColloquyEnd */ private function step3() { echo $this->user->name; // John } }
手动使用
<?php use Colloquy\Colloquy; use Colloquy\Drivers\FileDriver; class User { private $name; public function __construct(string $name) { $this->name = $name; } } /** Starting a Conversation */ $wrapper = new Colloquy(new FileDriver('storage')); $homeContext = $wrapper->context('Home'); $formContext = $wrapper->context('Form'); /** Primitive types */ $homeContext->add('Joe', 'name'); $homeContext->add('ilovecats', 'password'); $formContext->add('Jane', 'name'); $name = $homeContext->get('name'); // Joe $homeContext->set('John', 'name'); $name = $homeContext->get('name'); // John /** Objects */ $user = new User('Jack'); $homeContext->add($user, 'user'); var_dump($user); // User { name: "Jack" } $user = $homeContext->get('user'); var_dump($user); // User { name: "Jack" } /** Ending a Conversation */ $wrapper->end('Form'); $wrapper->end('Home');
贡献
欢迎贡献。如果您愿意,只需提交一个包含您希望看到的任何功能的PR即可。
作者
该库由 Dariusz Czajkowski、Grzegorz Tłuszcz、Aleksander Kuźma、Karol Piwnicki 制作。
许可证
Colloquy包是开源软件,受MIT许可证的许可。