twindigital / specification
An implementation of the Specification Pattern for Php7
1.0.0
2024-03-08 16:03 UTC
Requires
- php: >=7.0
- twindigital/specification-interfaces: dev-master
Requires (Dev)
- phpunit/phpunit: ^6.2
- satooshi/php-coveralls: ^1.0
This package is not auto-updated.
Last update: 2024-09-27 13:08:05 UTC
README
An implementation of the Specification pattern for Php7
Installation
Install using composer:
composer require stratadox/specification
Usage Sample
// The business logic
$allBoxes = CollectionOfBoxes::containing(
Box::ofWeight(1),
Box::ofWeight(2),
Box::ofWeight(3),
Box::ofWeight(5),
Box::ofWeight(12),
Box::ofWeight(26)
);
$weighBetween2and10 = AreHeavier::than(2)->and(AreLighter::than(10));
$this->assertEquals(
CollectionOfBoxes::containing(
Box::ofWeight(3),
Box::ofWeight(5),
Box::ofWeight(26)
),
$allBoxes->that($weighBetween2and10->or(AreHeavier::than(20)))
);