From 87295c444a3b980e8df6f3aa9a2145a65a51fcf7 Mon Sep 17 00:00:00 2001 From: Taylor Otwell Date: Tue, 11 Apr 2023 17:02:57 -0500 Subject: [PATCH 1/6] allow web and api named args on routes method --- .../Providers/RouteServiceProvider.php | 26 ++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php b/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php index c8679e51ede6..cd81feafd866 100644 --- a/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php +++ b/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php @@ -5,6 +5,7 @@ use Closure; use Illuminate\Contracts\Routing\UrlGenerator; use Illuminate\Routing\Router; +use Illuminate\Support\Facades\Route; use Illuminate\Support\ServiceProvider; use Illuminate\Support\Traits\ForwardsCalls; @@ -65,12 +66,31 @@ public function boot() /** * Register the callback that will be used to load the application's routes. * - * @param \Closure $routesCallback + * @param \Closure|null $routesCallback + * @param string|null $web + * @param string|null $api * @return $this */ - protected function routes(Closure $routesCallback) + protected function routes(?Closure $routesCallback = null, ?string $web = null, ?string $api = null) { - $this->loadRoutesUsing = $routesCallback; + if (is_null($web) && is_null($api)) { + $this->loadRoutesUsing = $routesCallback; + } else { + $this->loadRoutesUsing = function () use ($web, $api) { + if ($api) { + $this->app[Router::class] + ->middleware('api') + ->prefix('api') + ->group($api); + } + + if ($web) { + $this->app[Router::class] + ->middleware('web') + ->group($web); + } + }; + } return $this; } From daff04ada27ae53cba54e66e3109adcac45d7099 Mon Sep 17 00:00:00 2001 From: Taylor Otwell Date: Wed, 12 Apr 2023 14:51:49 -0500 Subject: [PATCH 2/6] add app skeleton broadcast provider in core --- .../Providers/BroadcastServiceProvider.php | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/Illuminate/Foundation/Support/Providers/BroadcastServiceProvider.php diff --git a/src/Illuminate/Foundation/Support/Providers/BroadcastServiceProvider.php b/src/Illuminate/Foundation/Support/Providers/BroadcastServiceProvider.php new file mode 100644 index 000000000000..f114f4922e97 --- /dev/null +++ b/src/Illuminate/Foundation/Support/Providers/BroadcastServiceProvider.php @@ -0,0 +1,21 @@ + Date: Wed, 12 Apr 2023 16:30:37 -0500 Subject: [PATCH 3/6] add default provider collection --- src/Illuminate/Support/DefaultProviders.php | 103 ++++++++++++++++++++ src/Illuminate/Support/ServiceProvider.php | 10 ++ 2 files changed, 113 insertions(+) create mode 100644 src/Illuminate/Support/DefaultProviders.php diff --git a/src/Illuminate/Support/DefaultProviders.php b/src/Illuminate/Support/DefaultProviders.php new file mode 100644 index 000000000000..c70c094d6ebd --- /dev/null +++ b/src/Illuminate/Support/DefaultProviders.php @@ -0,0 +1,103 @@ +providers = $providers ?: [ + \Illuminate\Auth\AuthServiceProvider::class, + \Illuminate\Broadcasting\BroadcastServiceProvider::class, + \Illuminate\Bus\BusServiceProvider::class, + \Illuminate\Cache\CacheServiceProvider::class, + \Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class, + \Illuminate\Cookie\CookieServiceProvider::class, + \Illuminate\Database\DatabaseServiceProvider::class, + \Illuminate\Encryption\EncryptionServiceProvider::class, + \Illuminate\Filesystem\FilesystemServiceProvider::class, + \Illuminate\Foundation\Providers\FoundationServiceProvider::class, + \Illuminate\Foundation\Support\Providers\BroadcastServiceProvider::class, + \Illuminate\Hashing\HashServiceProvider::class, + \Illuminate\Mail\MailServiceProvider::class, + \Illuminate\Notifications\NotificationServiceProvider::class, + \Illuminate\Pagination\PaginationServiceProvider::class, + \Illuminate\Pipeline\PipelineServiceProvider::class, + \Illuminate\Queue\QueueServiceProvider::class, + \Illuminate\Redis\RedisServiceProvider::class, + \Illuminate\Auth\Passwords\PasswordResetServiceProvider::class, + \Illuminate\Session\SessionServiceProvider::class, + \Illuminate\Translation\TranslationServiceProvider::class, + \Illuminate\Validation\ValidationServiceProvider::class, + \Illuminate\View\ViewServiceProvider::class, + ]; + } + + /** + * Merge the given providers into the provider collection. + * + * @param array $providers + * @return static + */ + public function merge(array $providers) + { + $this->providers = array_merge($this->providers, $providers); + + return new static($this->providers); + } + + /** + * Replace the given providers with other providers. + * + * @param array $items + * @return static + */ + public function replace(array $replacements) + { + $current = collect($this->providers); + + foreach ($replacements as $from => $to) { + $key = $current->search($from); + + $current = $key ? $current->replace([$key => $to]) : $current; + } + + return new static($current->values()->toArray()); + } + + /** + * Disable the given providers. + * + * @param array $providers + * @return static + */ + public function except(array $providers) + { + return new static(collect($this->providers) + ->reject(fn ($p) => in_array($p, $providers)) + ->values() + ->toArray()); + } + + /** + * Convert the provider collection to an array. + * + * @return array + */ + public function toArray() + { + return $this->providers; + } +} diff --git a/src/Illuminate/Support/ServiceProvider.php b/src/Illuminate/Support/ServiceProvider.php index 6c530c121d3c..a46ba29690aa 100755 --- a/src/Illuminate/Support/ServiceProvider.php +++ b/src/Illuminate/Support/ServiceProvider.php @@ -434,4 +434,14 @@ public function isDeferred() { return $this instanceof DeferrableProvider; } + + /** + * Get the default providers for a Laravel application. + * + * @return \Illuminate\Support\DefaultProviders + */ + public static function defaultProviders() + { + return new DefaultProviders; + } } From d7324362de9512f94bc374038067246e532c6e67 Mon Sep 17 00:00:00 2001 From: Taylor Otwell Date: Fri, 14 Apr 2023 16:41:55 -0500 Subject: [PATCH 4/6] remove base broadcast service provider --- .../Providers/BroadcastServiceProvider.php | 21 ------------------- src/Illuminate/Support/DefaultProviders.php | 1 - 2 files changed, 22 deletions(-) delete mode 100644 src/Illuminate/Foundation/Support/Providers/BroadcastServiceProvider.php diff --git a/src/Illuminate/Foundation/Support/Providers/BroadcastServiceProvider.php b/src/Illuminate/Foundation/Support/Providers/BroadcastServiceProvider.php deleted file mode 100644 index f114f4922e97..000000000000 --- a/src/Illuminate/Foundation/Support/Providers/BroadcastServiceProvider.php +++ /dev/null @@ -1,21 +0,0 @@ - Date: Fri, 14 Apr 2023 21:46:24 +0000 Subject: [PATCH 5/6] Apply fixes from StyleCI --- .../Foundation/Support/Providers/RouteServiceProvider.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php b/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php index cd81feafd866..a079c06bfa10 100644 --- a/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php +++ b/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php @@ -5,7 +5,6 @@ use Closure; use Illuminate\Contracts\Routing\UrlGenerator; use Illuminate\Routing\Router; -use Illuminate\Support\Facades\Route; use Illuminate\Support\ServiceProvider; use Illuminate\Support\Traits\ForwardsCalls; From 9dddd3d86890aeede592497731cab2935fac0993 Mon Sep 17 00:00:00 2001 From: Taylor Otwell Date: Fri, 14 Apr 2023 16:47:05 -0500 Subject: [PATCH 6/6] revert route provider change --- .../Providers/RouteServiceProvider.php | 25 +++---------------- 1 file changed, 3 insertions(+), 22 deletions(-) diff --git a/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php b/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php index a079c06bfa10..c8679e51ede6 100644 --- a/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php +++ b/src/Illuminate/Foundation/Support/Providers/RouteServiceProvider.php @@ -65,31 +65,12 @@ public function boot() /** * Register the callback that will be used to load the application's routes. * - * @param \Closure|null $routesCallback - * @param string|null $web - * @param string|null $api + * @param \Closure $routesCallback * @return $this */ - protected function routes(?Closure $routesCallback = null, ?string $web = null, ?string $api = null) + protected function routes(Closure $routesCallback) { - if (is_null($web) && is_null($api)) { - $this->loadRoutesUsing = $routesCallback; - } else { - $this->loadRoutesUsing = function () use ($web, $api) { - if ($api) { - $this->app[Router::class] - ->middleware('api') - ->prefix('api') - ->group($api); - } - - if ($web) { - $this->app[Router::class] - ->middleware('web') - ->group($web); - } - }; - } + $this->loadRoutesUsing = $routesCallback; return $this; }