function() { function getClassesFromFolder(string $folder): array { $classes = []; $files = new FilesystemIterator($folder); foreach ($files as $file) { if ($file->isDir()) { $classes = array_merge($classes, getClassesFromFolder($file->getRealPath())); continue; } $classes []= ltrim(str_replace("\\\\", "\\", implode("\\", [ 'ProVM', 'Emails', 'Model', str_replace([implode(DIRECTORY_SEPARATOR, [ dirname(__FILE__, 3), 'src', 'Model' ]), '/'], ['', "\\"], $folder), $file->getBasename(".{$file->getExtension()}") ])), "\\"); } return $classes; } $folder = implode(DIRECTORY_SEPARATOR, [ dirname(__FILE__, 3), 'src', 'Model' ]); return getClassesFromFolder($folder); } ];