private function directoryNameToFileList(string $directory_name) : array
{
$file_list = [];
try {
$iterator = new \RegexIterator(new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($directory_name, \RecursiveDirectoryIterator::FOLLOW_SYMLINKS)), '/^.+\\.php$/i', \RecursiveRegexIterator::GET_MATCH);
foreach (array_keys(iterator_to_array($iterator)) as $file_name) {
$file_path = Config::projectPath($file_name);
if (is_file($file_path) && is_readable($file_path)) {
$file_list[] = $file_name;
} else {
error_log("Unable to read file {$file_path}");
}
}
} catch (\Exception $exception) {
error_log($exception->getMessage());
}
return $file_list;
}