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: * 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 Boolean true if the value should be kept, false otherwise
42: */
43: public function accept()
44: {
45: $fileinfo = $this->current();
46:
47: if (!$fileinfo->isFile()) {
48: return true;
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: