1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70:
<?php
namespace Faulancer\Helper;
use Faulancer\Exception\ConstantMissingException;
use Faulancer\Service\Config;
use Faulancer\ServiceLocator\ServiceLocator;
class DirectoryIterator
{
private static $files = [];
private static $defaultDirectory = '/Controller';
public static function getFiles($dir = '')
{
$config = ServiceLocator::instance()->get(Config::class);
$dir = empty($dir) ? $config->get('applicationRoot') . self::$defaultDirectory : $dir;
foreach (scandir($dir) as $res) {
if ($res === '.' || $res === '..') {
continue;
}
if (is_dir($dir . '/' . $res)) {
self::getFiles($dir . '/' . $res);
continue;
}
$namespace = ucfirst(str_replace([$config->get('applicationRoot'), '/'], ['', '\\'], $dir));
if (!empty($config->get('namespacePrefix'))) {
$namespace = $config->get('namespacePrefix') . $namespace;
}
self::$files[$namespace][] = $res;
}
return self::$files;
}
}