From 887ed179e8b49ec2b8596b6a3816cba0f3cfbb06 Mon Sep 17 00:00:00 2001 From: Koen De Causmaecker Date: Thu, 21 Sep 2017 07:51:40 +0200 Subject: [PATCH 1/2] Do not rely on GLOB_BRACE as it is not available on musl based systems --- app/Foundation/Providers/RouteServiceProvider.php | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/app/Foundation/Providers/RouteServiceProvider.php b/app/Foundation/Providers/RouteServiceProvider.php index 8f3f2ede1bda..a69612f972a7 100644 --- a/app/Foundation/Providers/RouteServiceProvider.php +++ b/app/Foundation/Providers/RouteServiceProvider.php @@ -89,12 +89,7 @@ public function map(Router $router) $router->group(['namespace' => $this->namespace, 'as' => 'core::'], function (Router $router) { $path = app_path('Http/Routes'); - // GLOB_BRACE is defined as 0, check the source! - // https://github.com/php/php-src/blob/31e4afe3c3654f9c5ab2eafa3a02c62d41c58b47/ext/standard/dir.c#L154-L158 - $globBrace = defined('GLOB_BRACE') ? GLOB_BRACE : 0; - $globFlag = $globBrace; - - foreach (glob("{$path}/*{,/*}.php", $globFlag) as $file) { + foreach (array_merge(glob("$path/*.php"), glob("$path/*/*.php")) as $file) { $class = substr($file, strlen($path)); $class = str_replace('/', '\\', $class); $class = substr($class, 0, -4); From e69169e7c75931de0bb066e17a04133312484795 Mon Sep 17 00:00:00 2001 From: Koen De Causmaecker Date: Fri, 22 Sep 2017 14:59:07 +0200 Subject: [PATCH 2/2] Recursive search for .php route files --- app/Foundation/Providers/RouteServiceProvider.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/Foundation/Providers/RouteServiceProvider.php b/app/Foundation/Providers/RouteServiceProvider.php index a69612f972a7..cca41e32e1de 100644 --- a/app/Foundation/Providers/RouteServiceProvider.php +++ b/app/Foundation/Providers/RouteServiceProvider.php @@ -89,7 +89,10 @@ public function map(Router $router) $router->group(['namespace' => $this->namespace, 'as' => 'core::'], function (Router $router) { $path = app_path('Http/Routes'); - foreach (array_merge(glob("$path/*.php"), glob("$path/*/*.php")) as $file) { + $AllFileIterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($path)); + $PhpFileIterator = new \RegexIterator($AllFileIterator, '/^.+\.php$/i', \RecursiveRegexIterator::GET_MATCH); + + foreach ($PhpFileIterator as $file => $object) { $class = substr($file, strlen($path)); $class = str_replace('/', '\\', $class); $class = substr($class, 0, -4);