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\MutableContainerInterface;
/**
* Class ChainedFilter.
*
* @author Ivan Barlog <[email protected]>
*/
class ChainFilter implements NavigationFilterInterface
{
/** @var NavigationFilterInterface[] */
private $filters = [];
public function __construct(array $filters)
array_map([$this, 'add'], $filters);
}
public function add(NavigationFilterInterface $filter): void
$this->filters[] = $filter;
public function filterItems(MutableContainerInterface $container): MutableContainerInterface
$filtered = clone $container;
foreach ($this->filters as $filter) {
$filtered = $filter->filterItems($filtered);
return $filtered;