jowy / tactician-service-provider
Silex tactician 服务提供者
v2.1.0
2016-06-21 04:21 UTC
Requires
- php: ~5.5
- league/tactician: ~1.0.0
- silex/silex: ~2.0
This package is not auto-updated.
Last update: 2024-09-14 17:16:17 UTC
README
为 Pimple 或 Silex 容器提供 Tactician 服务
要求
- PHP >= 5.5
- Silex >= 2.0
- Pimple >= 3.0
安装
composer require jowy/tactician-service-provider
使用
注册 tactician 服务提供者
$app->register( new TacticianServiceProvider( [ 'tactician.inflector' => 'class_name', 'tactician.middleware' => [ new LockingMiddleware() ] ] ) );
在 DIC 中注册命令处理器
处理器必须注册在容器中,并使用 FQCN
作为服务 ID
$app[HandlerClass::class] = function() { return new HandlerClass(); };
映射命令和处理器
在 tactician 命令总线服务提供者注册后,您可以映射命令和处理器
$app['tactician.locator']->addHandler(CommandClass::class, HandlerClass::class);
分发命令
$command = new CommandClass('param'); $container['tactician.command_bus']->handle($command)
选项
Inflector
- class_name
- class_name_without_suffix
- handle
- invoke
有关选择 Inflector
的更多信息,请参阅 本文档
中间件
在注册 tactician 服务时可以添加中间件。
$app->register( new TacticianServiceProvider( [ 'tactician.inflector' => 'class_name', 'tactician.middleware' => [ new LockingMiddleware(), new SomeMiddleware(), new OtherMiddleware() ] ] ) );
通过使用此方法,中间件可以可选地进行懒初始化
$app[LockingMiddleware::class] = function () { return new LockingMiddleware(); }; $app->register( new TacticianServiceProvider( [ 'tactician.inflector' => 'class_name', 'tactician.middleware' => [ LockingMiddleware::class ] ] ) );
许可证
MIT,见 LICENSE