aambr / phpchain
该包的最新版本(1.1.1)没有可用的许可证信息。
1.1.1
2016-10-28 12:13 UTC
Requires
Requires (Dev)
- phpunit/phpunit: 5.6.*
This package is auto-updated.
Last update: 2024-09-08 23:02:33 UTC
README
一组类,帮助创建步骤链,以最小化领域逻辑中的混乱。
安装
composer require aambr/phpchain
快速开始
$dispatcher = new ChainDispatcher($dependencyInjectionContainer); $dispatcher->chain('user.register')->define([ 'Steps\CreateUserStep', Steps\CreateProfileStep::class, 'sendWelcomeEmail' ]); // all of these will be resolved by dependency container unless // there is a concrete ChainStep object ready $dispatcher->chain('user.register')->dispatch()->execute(new \ArrayObject([ 'username' => 'valid-username', 'email' => 'valid@email.com' ]));
ChainDispatcher
接受任何扩展 \ArrayObject
的依赖注入容器,以解决每个步骤的依赖。
分而治之
目标是把复杂的领域逻辑分解成可重用的单个步骤。通过继承 ChainStep
并在 process(\ArrayObject $input)
中实现逻辑来创建自己的步骤。
步骤间共享变量
步骤可以通过修改 $input
键来相互共享变量,这是因为我们传递的是 \ArrayObject
实例的引用,而不是通过值传递的数组。例如,在 CreateUserStep
成功操作之后,可以设置 $input['user'] = $createdUser
,然后可以被 sendWelcomeEmail
使用。