39 lines
		
	
	
		
			966 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			966 B
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| include_once __DIR__ . '/Autoloader.php';
 | |
| 
 | |
| \Complex\Autoloader::Register();
 | |
| 
 | |
| 
 | |
| abstract class FilesystemRegexFilter extends RecursiveRegexIterator
 | |
| {
 | |
|     protected $regex;
 | |
|     public function __construct(RecursiveIterator $it, $regex)
 | |
|     {
 | |
|         $this->regex = $regex;
 | |
|         parent::__construct($it, $regex);
 | |
|     }
 | |
| }
 | |
| 
 | |
| class FilenameFilter extends FilesystemRegexFilter
 | |
| {
 | |
|     // Filter files against the regex
 | |
|     public function accept()
 | |
|     {
 | |
|         return (!$this->isFile() || preg_match($this->regex, $this->getFilename()));
 | |
|     }
 | |
| }
 | |
| 
 | |
| 
 | |
| $srcFolder = __DIR__ . DIRECTORY_SEPARATOR . 'src';
 | |
| $srcDirectory = new RecursiveDirectoryIterator($srcFolder);
 | |
| 
 | |
| $filteredFileList = new FilenameFilter($srcDirectory, '/(?:php)$/i');
 | |
| $filteredFileList = new FilenameFilter($filteredFileList, '/^(?!.*(Complex|Exception)\.php).*$/i');
 | |
| 
 | |
| foreach (new RecursiveIteratorIterator($filteredFileList) as $file) {
 | |
|     if ($file->isFile()) {
 | |
|         include_once $file;
 | |
|     }
 | |
| }
 | 
