library specification
Basic classes for Specification pattern in PHP.
tanigami/specification
Basic classes for Specification pattern in PHP.
- Wednesday, November 22, 2017
- by tanigami
- Repository
- 1 Watchers
- 4 Stars
- 8 Installations
- PHP
- 0 Dependents
- 0 Suggesters
- 0 Forks
- 0 Open issues
- 3 Versions
- 167 % Grown
PHP Specification
, (*1)
Basic classes for Specification pattern in PHP. On top of the typical set of and
, or
and not
specificaitons, anyOf
, oneOf
, noneOf
specifications are proposed., (*2)
This package is based on the implementation in carlosbuenosvinos/ddd., (*3)
Installation
$ composer require tanigami/specification
Usage example
<?php
use Tanigami\Specification\Specification;
use Tanigami\Specification\OneOfSpecification;
class Order
{
public function isPaid()
{
return true;
}
public function isShipped()
{
return false;
}
public function isCancelled()
{
return false;
}
}
class UnshippedOrderSpecification extends Specification
{
public function isSatisfiedBy($order): bool
{
return !$order->isShipped();
}
}
class PaidOrderSpecification extends Specification
{
public function isSatisfiedBy($order): bool
{
return $order->isPaid();
}
}
class CancelledOrderSpecification extends Specification
{
public function isSatisfiedBy($order): bool
{
return $order->isCancelled();
}
}
$paid = new PaidOrderSpecification;
$unshipped = new UnshippedOrderSpecification;
$cancelled = new CancelledOrderSpecification;
$paid->and($unshipped)->isSatisfiedBy(new Order); // => true
(new OneOfSpecification($paid, $unshipped, $cancelled))->isSatisfiedBy(new Order); // => true
dev-master
9999999-dev
Basic classes for Specification pattern in PHP.
Sources
Download
MIT
The Development Requires
v1.1.0
1.1.0.0
Basic classes for Specification pattern in PHP.
Sources
Download
MIT
The Development Requires
v1.0.0
1.0.0.0
Basic classes for Specification pattern in PHP.
Sources
Download
MIT
The Requires
The Development Requires