"extensions/{$item}", $routes); } return $result; } /** * Get all extensions * @return array of all extension paths look like: app/Extensions/ExtensionNamespace/ExtensionName */ public static function getAllExtensions() { $extensionNamespaces = glob(app_path() . '/Extensions/*', GLOB_ONLYDIR); $extensions = []; foreach ($extensionNamespaces as $extensionNamespace) { $extensions = array_merge($extensions, glob($extensionNamespace . '/*', GLOB_ONLYDIR)); } return $extensions; } public static function getAllExtensionsByNamespace(string $namespace) { $extensions = glob(app_path() . '/Extensions/' . $namespace . '/*', GLOB_ONLYDIR); return $extensions; } /** * Summary of getAllExtensionMigrations * @return array of all migration paths look like: app/Extensions/ExtensionNamespace/ExtensionName/migrations/ */ public static function getAllExtensionMigrations() { $extensions = ExtensionHelper::getAllExtensions(); // get all migration directories of the extensions and return them as array $migrations = []; foreach ($extensions as $extension) { $migrationDir = $extension . '/migrations'; if (file_exists($migrationDir)) { $migrations[] = $migrationDir; } } return $migrations; } }