if (!isset($_includes_tasks[$directory])) { if (is_dir($directory)) { $files = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($directory)); $tasks = array(); $bootstraps = array(); foreach ($files as $file) { if (strpos($file, '.task.php')) { $tasks[] = $file->getPathName(); } elseif (basename($file) == 'server.bootstrap.php') { $bootstraps[] = $file->getPathName(); } } array_walk($bootstraps, function ($file) { global $console; include_once $file; }); array_walk($tasks, function ($file) { global $console; include_once $file; }); } $_includes_tasks[$directory] = true; } } include_tasks(ANAHITA_ROOT . '/tasks'); include_tasks(COMPOSER_ROOT . '/tasks'); //include all tasks foreach ($console->getExtensionPackages() as $package) { include_tasks($package->getRoot() . '/tasks'); } return $console;