jedibc / decorator-stack
用于堆叠装饰器的简单工具
v1.0.1
2015-02-17 09:10 UTC
Requires
- php: >=5.4
- psr/log: ~1.0
Requires (Dev)
- m6web/coke: ~1.0
- m6web/symfony2-coding-standard: ~1.1
- phpunit/phpunit: ~4.0
This package is not auto-updated.
Last update: 2024-09-14 17:00:50 UTC
README
这是一个用于堆叠装饰器的简单工具。
安装
建议通过Composer安装此库。将jedibc/decorator-stack
包添加到您的composer.json
文件中
{ "require": { "jedibc/decorator-stack": "@stable" } }
使用方法
目前,如果您想装饰一个对象,您可能需要做类似这样的事情
$decoratedObject = new Foo\Bar\Decorator1( new Foo\Bar\Decorator2( new Foo\Bar\Decorator3( new ObjectToDecorate() ), [$someConstuctorArgument]) );
装饰器越多,代码越丑陋。
使用DecoratorStack,您可以简化它
$stack = (new DecoratorStack\Builder('Foo\Bar\DummyInterface')) ->push('Foo\Bar\Decorator1') ->push('Foo\Bar\Decorator2', [$someConstuctorArgument]) ->push('Foo\Bar\Decorator3'); $decoratedObject = $stack->resolve(new ObjectToDecorate())
每个装饰器和要装饰的对象必须实现Foo\Bar\DummyInterface
接口(或者可以扩展抽象类)。
灵感来源
许可证
DecoratorStack在MIT许可证下发布。有关详细信息,请参阅捆绑的LICENSE文件。