Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. ExcludeIterator.php

class ExcludeIterator

@internal This class is not covered by the backward compatibility promise for phpunit/php-file-iterator

Hierarchy

  • class \SebastianBergmann\FileIterator\ExcludeIterator extends \RecursiveFilterIterator

Expanded class hierarchy of ExcludeIterator

File

vendor/phpunit/php-file-iterator/src/ExcludeIterator.php, line 21

Namespace

SebastianBergmann\FileIterator
View source
final class ExcludeIterator extends RecursiveFilterIterator {
    
    /**
     * @psalm-var list<string>
     */
    private array $exclude;
    
    /**
     * @psalm-param list<string> $exclude
     */
    public function __construct(RecursiveDirectoryIterator $iterator, array $exclude) {
        parent::__construct($iterator);
        $this->exclude = $exclude;
    }
    public function accept() : bool {
        $current = $this->current();
        assert($current instanceof SplFileInfo);
        $path = $current->getRealPath();
        if ($path === false) {
            return false;
        }
        foreach ($this->exclude as $exclude) {
            if (str_starts_with($path, $exclude)) {
                return false;
            }
        }
        return true;
    }
    public function hasChildren() : bool {
        return $this->getInnerIterator()
            ->hasChildren();
    }
    public function getChildren() : self {
        return new self($this->getInnerIterator()
            ->getChildren(), $this->exclude);
    }
    public function getInnerIterator() : RecursiveDirectoryIterator {
        $innerIterator = parent::getInnerIterator();
        assert($innerIterator instanceof RecursiveDirectoryIterator);
        return $innerIterator;
    }

}

Members

Title Sort descending Modifiers Object type Summary
ExcludeIterator::$exclude private property @psalm-var list&lt;string&gt;
ExcludeIterator::accept public function
ExcludeIterator::getChildren public function
ExcludeIterator::getInnerIterator public function
ExcludeIterator::hasChildren public function
ExcludeIterator::__construct public function @psalm-param list&lt;string&gt; $exclude

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal