public static function ls($dir)
{
$contents = array();
$flags = \FilesystemIterator::KEY_AS_PATHNAME | \FilesystemIterator::CURRENT_AS_FILEINFO | \FilesystemIterator::SKIP_DOTS;
$dirIter = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($dir, $flags));
foreach ($dirIter as $path => $fi) {
$contents[] = $path;
}
natsort($contents);
return $contents;
}
/** * Register commands * * @param $commandsDir * @return bool */ protected function _registerCommands($commandsDir) { $files = FS::ls($commandsDir); if (empty($files)) { return false; } foreach ($files as $file) { require_once $file; $reflection = new \ReflectionClass(__NAMESPACE__ . '\\Command\\' . FS::filename($file)); if ($reflection->isSubclassOf('Symfony\\Component\\Console\\Command\\Command') && !$reflection->isAbstract()) { $this->add($reflection->newInstance()); } } return true; }