1<?php 2 3/* 4 * This file is part of the Symfony package. 5 * 6 * (c) Fabien Potencier <fabien@symfony.com> 7 * 8 * For the full copyright and license information, please view the LICENSE 9 * file that was distributed with this source code. 10 */ 11 12namespace Symfony\Component\Finder\Iterator; 13 14use Symfony\Component\Finder\Comparator\DateComparator; 15 16/** 17 * DateRangeFilterIterator filters out files that are not in the given date range (last modified dates). 18 * 19 * @author Fabien Potencier <fabien@symfony.com> 20 */ 21class DateRangeFilterIterator extends FilterIterator 22{ 23 private $comparators = array(); 24 25 /** 26 * Constructor. 27 * 28 * @param \Iterator $iterator The Iterator to filter 29 * @param DateComparator[] $comparators An array of DateComparator instances 30 */ 31 public function __construct(\Iterator $iterator, array $comparators) 32 { 33 $this->comparators = $comparators; 34 35 parent::__construct($iterator); 36 } 37 38 /** 39 * Filters the iterator values. 40 * 41 * @return bool true if the value should be kept, false otherwise 42 */ 43 public function accept() 44 { 45 $fileinfo = $this->current(); 46 47 if (!file_exists($fileinfo->getRealPath())) { 48 return false; 49 } 50 51 $filedate = $fileinfo->getMTime(); 52 foreach ($this->comparators as $compare) { 53 if (!$compare->test($filedate)) { 54 return false; 55 } 56 } 57 58 return true; 59 } 60} 61