taluu/chain-of-responsibility-bundle

该软件包已被废弃,不再维护。未建议替代软件包。

允许轻松实现责任链模式的软件包

dev-master 2017-10-29 18:02 UTC

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 测试。因此,只需运行测试,应该都是绿色的。:}

更多信息?

查看有关此设计模式的更多信息;