for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types = 1);
namespace Everlution\Navigation\Filter;
use Everlution\Navigation\Item;
/**
* @author Klinec <[email protected]>
*/
class FilterContainer
{
* @var FilterInterface[]
private $filters;
* @param array $filters
public function __construct(array $filters = [])
foreach ($filters as $filter) {
$this->addFilter($filter);
}
* @param FilterInterface $filter
* @return FilterContainer
public function addFilter(FilterInterface $filter): FilterContainer
$this->filters[] = $filter;
return $this;
* @param Item $item
* @return bool
public function shouldFilterOut(Item $item): bool
foreach ($this->filters as $filter) {
if ($filter->isApplicable($item) && $filter->shouldFilterOut($item)) {
return true;
return false;