103 lines
3.1 KiB
PHP
103 lines
3.1 KiB
PHP
|
<?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 $replacements
|
||
|
* @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;
|
||
|
}
|
||
|
}
|