public getAllFiles ( $initialDirectory, string $regex = null ) : string[] | ||
$regex | string | |
return | string[] |
public function getAllFiles($initialDirectory, $regex = null)
{
$directoryIterator = new RecursiveDirectoryIterator($initialDirectory, RecursiveDirectoryIterator::SKIP_DOTS);
$flattenedIterator = new RecursiveIteratorIterator($directoryIterator);
$iterator = $regex !== null ? new RegexIterator($flattenedIterator, $regex) : $flattenedIterator;
$output = [];
foreach ($iterator as $i) {
$output[] = $i->getRealpath();
}
usort($output, function ($a, $b) {
return strnatcasecmp($a, $b);
});
return $output;
}
/** * Builds a list of checks to run. */ private function build() { foreach ($this->fileSystem->getAllFiles($this->getRootDirectory(), '/^.*\\.php$/') as $filePath) { require_once $filePath; } $this->checks = []; foreach (get_declared_classes() as $class) { $reflectionClass = new ReflectionClass($class); if ($this->canInstantiate($reflectionClass)) { $this->checks[] = $reflectionClass->newInstance(); } } }