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: /**
15: * DepthRangeFilterIterator limits the directory depth.
16: *
17: * @author Fabien Potencier <fabien@symfony.com>
18: */
19: class DepthRangeFilterIterator extends FilterIterator
20: {
21: private $minDepth = 0;
22:
23: /**
24: * Constructor.
25: *
26: * @param \RecursiveIteratorIterator $iterator The Iterator to filter
27: * @param int $minDepth The min depth
28: * @param int $maxDepth The max depth
29: */
30: public function __construct(\RecursiveIteratorIterator $iterator, $minDepth = 0, $maxDepth = PHP_INT_MAX)
31: {
32: $this->minDepth = $minDepth;
33: $iterator->setMaxDepth(PHP_INT_MAX === $maxDepth ? -1 : $maxDepth);
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: return $this->getInnerIterator()->getDepth() >= $this->minDepth;
46: }
47: }
48: