Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 3.11.x will end 14 Nov 2022 (12 months plus 6 months extension).
  • Bug fixes for security issues in 3.11.x will end 13 Nov 2023 (18 months plus 12 months extension).
  • PHP version: minimum PHP 7.3.0 Note: minimum PHP version has increased since Moodle 3.10. PHP 7.4.x is supported too.
   1  <?php
   2  
   3  include_once  __DIR__ . '/Autoloader.php';
   4  
   5  \Matrix\Autoloader::Register();
   6  
   7  
   8  abstract class FilesystemRegexFilter extends RecursiveRegexIterator
   9  {
  10      protected $regex;
  11      public function __construct(RecursiveIterator $it, $regex)
  12      {
  13          $this->regex = $regex;
  14          parent::__construct($it, $regex);
  15      }
  16  }
  17  
  18  class FilenameFilter extends FilesystemRegexFilter
  19  {
  20      // Filter files against the regex
  21      public function accept()
  22      {
  23          return (!$this->isFile() || preg_match($this->regex, $this->getFilename()));
  24      }
  25  }
  26  
  27  
  28  $srcFolder = __DIR__ . DIRECTORY_SEPARATOR . 'src';
  29  $srcDirectory = new RecursiveDirectoryIterator($srcFolder);
  30  
  31  $filteredFileList = new FilenameFilter($srcDirectory, '/(?:php)$/i');
  32  $filteredFileList = new FilenameFilter($filteredFileList, '/^(?!.*(Matrix|Exception)\.php).*$/i');
  33  
  34  foreach (new RecursiveIteratorIterator($filteredFileList) as $file) {
  35      if ($file->isFile()) {
  36          include_once $file;
  37      }
  38  }