anfischer / specification
一个包含基础类别的包,用于作为在PHP中实现规范模式(Specification pattern)的起点。
v0.1.0
2018-06-26 13:29 UTC
Requires
- php: >=7.1
Requires (Dev)
- phpunit/phpunit: >=7.2.6
- squizlabs/php_codesniffer: ^2.3
This package is auto-updated.
Last update: 2024-09-27 17:39:16 UTC
README
一个包含基础类别的包,用于作为在PHP中实现规范模式(Specification pattern)的起点(更多信息请见https://martinfowler.com.cn/apsupp/spec.pdf)。
此包包括典型的一组and(), or()和not()规范,以及allOf(), anyOf()和noneOf()规范。
安装
通过Composer
$ composer require anfischer/specification
使用方法
此包的一般使用可以从其测试用例中推断出来。
但是,使用单个规范(不)满足的一个非常基础和简化的示例可能如下所示
use Anfischer\Specification\Specification; class Invoice { public function isOverdue() { /* Logic snip */ return true; } } class OverdueInvoiceSpecification extends Specification { public function isSatisfiedBy($invoice): bool { return $invoice->isOverdue(); } } $overdue = new OverdueInvoiceSpecification; // Will return true $overdue->isSatisfiedBy(new Invoice); // Will return false $overdue->not()->isSatisfiedBy(new Invoice);
变更日志
有关最近变更的更多信息,请参阅CHANGELOG。
测试
$ composer test
贡献
请参阅CONTRIBUTING和CODE_OF_CONDUCT以获取详细信息。
安全
如果您发现任何与安全相关的问题,请通过电子邮件kontakt@season.dk联系,而不是使用问题跟踪器。
鸣谢
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。