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;
 | 
						|
    }
 | 
						|
}
 |