1: <?php
2:
3: 4: 5: 6: 7: 8: 9: 10:
11:
12: namespace Symfony\Component\Finder\Adapter;
13:
14: use Symfony\Component\Finder\Iterator;
15:
16: 17: 18: 19: 20:
21: class PhpAdapter extends AbstractAdapter
22: {
23: 24: 25:
26: public function searchInDirectory($dir)
27: {
28: $flags = \RecursiveDirectoryIterator::SKIP_DOTS;
29:
30: if ($this->followLinks) {
31: $flags |= \RecursiveDirectoryIterator::FOLLOW_SYMLINKS;
32: }
33:
34: $iterator = new \RecursiveIteratorIterator(
35: new Iterator\RecursiveDirectoryIterator($dir, $flags),
36: \RecursiveIteratorIterator::SELF_FIRST
37: );
38:
39: if ($this->minDepth > 0 || $this->maxDepth < PHP_INT_MAX) {
40: $iterator = new Iterator\DepthRangeFilterIterator($iterator, $this->minDepth, $this->maxDepth);
41: }
42:
43: if ($this->mode) {
44: $iterator = new Iterator\FileTypeFilterIterator($iterator, $this->mode);
45: }
46:
47: if ($this->exclude) {
48: $iterator = new Iterator\ExcludeDirectoryFilterIterator($iterator, $this->exclude);
49: }
50:
51: if ($this->names || $this->notNames) {
52: $iterator = new Iterator\FilenameFilterIterator($iterator, $this->names, $this->notNames);
53: }
54:
55: if ($this->contains || $this->notContains) {
56: $iterator = new Iterator\FilecontentFilterIterator($iterator, $this->contains, $this->notContains);
57: }
58:
59: if ($this->sizes) {
60: $iterator = new Iterator\SizeRangeFilterIterator($iterator, $this->sizes);
61: }
62:
63: if ($this->dates) {
64: $iterator = new Iterator\DateRangeFilterIterator($iterator, $this->dates);
65: }
66:
67: if ($this->filters) {
68: $iterator = new Iterator\CustomFilterIterator($iterator, $this->filters);
69: }
70:
71: if ($this->sort) {
72: $iteratorAggregate = new Iterator\SortableIterator($iterator, $this->sort);
73: $iterator = $iteratorAggregate->getIterator();
74: }
75:
76: if ($this->paths || $this->notPaths) {
77: $iterator = new Iterator\PathFilterIterator($iterator, $this->paths, $this->notPaths);
78: }
79:
80: return $iterator;
81: }
82:
83: 84: 85:
86: public function getName()
87: {
88: return 'php';
89: }
90:
91: 92: 93:
94: protected function canBeUsed()
95: {
96: return true;
97: }
98: }
99: