1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- <?php
- /*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- namespace Symfony\Component\Finder\Adapter;
- use Symfony\Component\Finder\Iterator;
- /**
- * PHP finder engine implementation.
- *
- * @author Jean-François Simon <contact@jfsimon.fr>
- */
- class PhpAdapter extends AbstractAdapter
- {
- /**
- * {@inheritdoc}
- */
- public function searchInDirectory($dir)
- {
- $flags = \RecursiveDirectoryIterator::SKIP_DOTS;
- if ($this->followLinks) {
- $flags |= \RecursiveDirectoryIterator::FOLLOW_SYMLINKS;
- }
- $iterator = new \RecursiveIteratorIterator(
- new Iterator\RecursiveDirectoryIterator($dir, $flags, $this->ignoreUnreadableDirs),
- \RecursiveIteratorIterator::SELF_FIRST
- );
- if ($this->minDepth > 0 || $this->maxDepth < PHP_INT_MAX) {
- $iterator = new Iterator\DepthRangeFilterIterator($iterator, $this->minDepth, $this->maxDepth);
- }
- if ($this->mode) {
- $iterator = new Iterator\FileTypeFilterIterator($iterator, $this->mode);
- }
- if ($this->exclude) {
- $iterator = new Iterator\ExcludeDirectoryFilterIterator($iterator, $this->exclude);
- }
- if ($this->names || $this->notNames) {
- $iterator = new Iterator\FilenameFilterIterator($iterator, $this->names, $this->notNames);
- }
- if ($this->contains || $this->notContains) {
- $iterator = new Iterator\FilecontentFilterIterator($iterator, $this->contains, $this->notContains);
- }
- if ($this->sizes) {
- $iterator = new Iterator\SizeRangeFilterIterator($iterator, $this->sizes);
- }
- if ($this->dates) {
- $iterator = new Iterator\DateRangeFilterIterator($iterator, $this->dates);
- }
- if ($this->filters) {
- $iterator = new Iterator\CustomFilterIterator($iterator, $this->filters);
- }
- if ($this->sort) {
- $iteratorAggregate = new Iterator\SortableIterator($iterator, $this->sort);
- $iterator = $iteratorAggregate->getIterator();
- }
- if ($this->paths || $this->notPaths) {
- $iterator = new Iterator\PathFilterIterator($iterator, $this->paths, $this->notPaths);
- }
- return $iterator;
- }
- /**
- * {@inheritdoc}
- */
- public function getName()
- {
- return 'php';
- }
- /**
- * {@inheritdoc}
- */
- protected function canBeUsed()
- {
- return true;
- }
- }
|