Files
DesignPatternsPHP/Behavioral/Specification/OrSpecification.php
Dominik Liebler ce1b53847d PHP7 Specification
2016-09-22 12:54:03 +02:00

31 lines
682 B
PHP

<?php
namespace DesignPatterns\Behavioral\Specification;
class OrSpecification implements SpecificationInterface
{
/**
* @var SpecificationInterface[]
*/
private $specifications;
/**
* @param SpecificationInterface[] ...$specifications
*/
public function __construct(SpecificationInterface ...$specifications)
{
$this->specifications = $specifications;
}
public function isSatisfiedBy(Item $item): bool
{
$satisfied = [];
foreach ($this->specifications as $specification) {
$satisfied[] = $specification->isSatisfiedBy($item);
}
return in_array(true, $satisfied);
}
}