123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- <?php
- namespace Illuminate\Support;
- class DefaultProviders
- {
- /**
- * The current providers.
- *
- * @var array
- */
- protected $providers;
- /**
- * Create a new default provider collection.
- *
- * @return void
- */
- public function __construct(?array $providers = null)
- {
- $this->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\Hashing\HashServiceProvider::class,
- \Illuminate\Mail\MailServiceProvider::class,
- \Illuminate\Notifications\NotificationServiceProvider::class,
- \Illuminate\Pagination\PaginationServiceProvider::class,
- \Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
- \Illuminate\Pipeline\PipelineServiceProvider::class,
- \Illuminate\Queue\QueueServiceProvider::class,
- \Illuminate\Redis\RedisServiceProvider::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 = is_int($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;
- }
- }
|