taluu / chain-of-responsibility-bundle
该软件包已被废弃,不再维护。未建议替代软件包。
允许轻松实现责任链模式的软件包
dev-master
2017-10-29 18:02 UTC
Requires
- php: ^7.1
- symfony/config: ^3.3 || ^4.0
- symfony/dependency-injection: ^3.3 || ^4.0
- symfony/http-kernel: ^3.3 || ^4.0
Requires (Dev)
- phpunit/phpunit: ^6.4
This package is auto-updated.
Last update: 2022-02-04 23:41:09 UTC
README
这是一个简单的软件包,可以帮助通过 Symfony(支持 3.3 及以上版本)集成责任链模式。需要 PHP 7.1。
通过 composer 安装,您只需要求 taluu/chain-of-responsibility-bundle
软件包。其他方法(zip 等)也受支持,但您需要自行处理。:P
如何使用
要声明责任链,每个项目都必须实现 ChainOfResponsibility\LinkInterface
接口,并声明一个后继者(如果有)。对象如何执行由您负责。:}
如果只想实现简单的责任链模式,提供了一个 AbstractLink
类。只需扩展它,并实现 doHandle
方法。
一旦您有了链式服务,您只需在软件包的配置中指定它们即可。
chain_of_responsibility: my_first_chain: - foo_service - Bar\Baz # - ... my_second_chain: - Bar\Baz - baz_service # - ... # ... and so on
这些是服务标识符,因此应该进行声明。
注入链
如果您想注入链,每个链的末端都被别名为 chain_of_responsibility.chains.{{ name }}
(例如 chain_of_responsibility.chains.my_first_chain
)。因此,使用该标识符注入正确的链。
测试
通过 PHPUnit 6 测试。因此,只需运行测试,应该都是绿色的。:}
更多信息?
查看有关此设计模式的更多信息;