You are here

class TwigRecursiveIterator in Upgrade Status 8.3

Filters a RecursiveDirectoryIterator to discover Drupal twig template files.

Hierarchy

  • class \Drupal\upgrade_status\TwigRecursiveIterator extends \Drupal\upgrade_status\RecursiveIteratorIterator

Expanded class hierarchy of TwigRecursiveIterator

File

src/TwigRecursiveIterator.php, line 10

Namespace

Drupal\upgrade_status
View source
class TwigRecursiveIterator extends \RecursiveIteratorIterator {

  /**
   * TwigRecursiveIteratorIterator constructor.
   *
   * @param string $directory
   *   Directory to search files.
   */
  public function __construct(string $directory) {
    $exclude = Settings::get('file_scan_ignore_directories', []);
    parent::__construct(new \RecursiveCallbackFilterIterator(new \RecursiveDirectoryIterator($directory, \RecursiveDirectoryIterator::SKIP_DOTS), function ($current) use ($exclude) {
      $name = $current
        ->getFilename();

      // RecursiveDirectoryIterator::SKIP_DOTS only skips '.' and '..', but
      // not hidden directories (like '.git').
      return $name[0] !== '.' && ($current
        ->isDir() && !in_array($name, $exclude, TRUE) || $current
        ->isFile() && substr($name, -10) === '.html.twig');
    }), \RecursiveIteratorIterator::LEAVES_ONLY);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
TwigRecursiveIterator::__construct public function TwigRecursiveIteratorIterator constructor.