for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/**
* This file is part of coisa/http.
*
* (c) Felipe Sayão Lobato Abreu <[email protected]>
* This source file is subject to the license that is bundled
* with this source code in the file LICENSE.
*/
declare(strict_types=1);
namespace CoiSA\Http\Message\UploadedFile\Filter;
use CoiSA\Http\Message\UploadedFile\FilterInterface;
use Psr\Http\Message\UploadedFileInterface;
* Class FilterAggregator
* @package CoiSA\Http\Message\UploadedFile\Filter
final class FilterAggregator implements FilterInterface
{
* @var FilterInterface[]
private $filters;
* FilterAggregator constructor.
* @param FilterInterface ...$filters
public function __construct(FilterInterface ...$filters)
$this->filters = $filters;
}
* @param UploadedFileInterface ...$uploadedFiles
* @return \Iterator
public function filter(UploadedFileInterface ...$uploadedFiles): \Iterator
$filtered = clone $uploadedFiles;
foreach ($this->filters as $filter) {
if (empty($filtered)) {
break;
$filtered = $filter->filter(...$filtered);
return $filtered;