2017 © Pedro Peláez
 

library specification

A package containing base classes to be used as a starting ground for implementing the Specification pattern in PHP.

image

anfischer/specification

A package containing base classes to be used as a starting ground for implementing the Specification pattern in PHP.

  • Tuesday, June 26, 2018
  • by anfischer
  • Repository
  • 1 Watchers
  • 1 Stars
  • 1 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

PHP Specification pattern

Latest Version on Packagist ![Software License][ico-license] Build Status ![Coverage Status][ico-scrutinizer] Quality Score ![Total Downloads][ico-downloads], (*1)

A package containing base classes to be used as a starting ground for implementation of the Specification pattern in PHP (for more information see https://martinfowler.com/apsupp/spec.pdf)., (*2)

This package includes the typical set of and(), or() and not() specifications as well as specifications for allOf(), anyOf() and noneOf()., (*3)

Install

Via Composer, (*4)

``` bash $ composer require anfischer/specification, (*5)


## Usage General usage of this package can be inferred from its test cases. However a very basic and simplified example of usage with a single specification to (not) satisfy might look like this: ``` php 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);

Change log

Please see CHANGELOG for more information on what has changed recently., (*6)

Testing

bash $ composer test, (*7)

Contributing

Please see CONTRIBUTING and CODE_OF_CONDUCT for details., (*8)

Security

If you discover any security related issues, please email kontakt@season.dk instead of using the issue tracker., (*9)

Credits

License

The MIT License (MIT). Please see License File for more information., (*10)

The Versions

26/06 2018

dev-master

9999999-dev https://github.com/anfischer/specification

A package containing base classes to be used as a starting ground for implementing the Specification pattern in PHP.

  Sources   Download

MIT

The Requires

  • php >=7.1

 

The Development Requires

specification anfischer

26/06 2018

v0.1.0

0.1.0.0 https://github.com/anfischer/specification

A package containing base classes to be used as a starting ground for implementing the Specification pattern in PHP.

  Sources   Download

MIT

The Requires

  • php >=7.1

 

The Development Requires

specification anfischer