hellofresh/tactician-service-provider

此包已被废弃且不再维护。未建议替代包。

Silex tactician 服务提供者

v2.1.1 2016-06-20 16:31 UTC

README

Scrutinizer Code Quality Build Status

为 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)

选项

词形还原器

  • 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