b01e5e3f5d8857c4e9a43b7b3afcac9aa6d3ce33
[yaffs-website] / vendor / symfony / finder / Iterator / DateRangeFilterIterator.php
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
12 namespace Symfony\Component\Finder\Iterator;
13
14 use 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  */
21 class DateRangeFilterIterator extends FilterIterator
22 {
23     private $comparators = array();
24
25     /**
26      * @param \Iterator        $iterator    The Iterator to filter
27      * @param DateComparator[] $comparators An array of DateComparator instances
28      */
29     public function __construct(\Iterator $iterator, array $comparators)
30     {
31         $this->comparators = $comparators;
32
33         parent::__construct($iterator);
34     }
35
36     /**
37      * Filters the iterator values.
38      *
39      * @return bool true if the value should be kept, false otherwise
40      */
41     public function accept()
42     {
43         $fileinfo = $this->current();
44
45         if (!file_exists($fileinfo->getPathname())) {
46             return false;
47         }
48
49         $filedate = $fileinfo->getMTime();
50         foreach ($this->comparators as $compare) {
51             if (!$compare->test($filedate)) {
52                 return false;
53             }
54         }
55
56         return true;
57     }
58 }