Файл: vendor/nunomaduro/collision/src/Adapters/Laravel/CollisionServiceProvider.php
Строк: 126
<?php
declare(strict_types=1);
namespace NunoMaduroCollisionAdaptersLaravel;
use IlluminateContractsDebugExceptionHandler as ExceptionHandlerContract;
use IlluminateSupportServiceProvider;
use NunoMaduroCollisionAdaptersLaravelCommandsTestCommand;
use NunoMaduroCollisionContractsProvider as ProviderContract;
use NunoMaduroCollisionHandler;
use NunoMaduroCollisionProvider;
use NunoMaduroCollisionSolutionsRepositoriesNullSolutionsRepository;
use NunoMaduroCollisionWriter;
/**
* @internal
*
* @final
*/
class CollisionServiceProvider extends ServiceProvider
{
/**
* {@inheritdoc}
*
* @var bool
*/
protected $defer = true;
/**
* Boots application services.
*
* @return void
*/
public function boot()
{
$this->commands([
TestCommand::class,
]);
}
/**
* {@inheritdoc}
*/
public function register()
{
if ($this->app->runningInConsole() && ! $this->app->runningUnitTests()) {
$this->app->bind(ProviderContract::class, function () {
// @phpstan-ignore-next-line
if ($this->app->has(SpatieIgnitionContractsSolutionProviderRepository::class)) {
/** @var SpatieIgnitionContractsSolutionProviderRepository $solutionProviderRepository */
$solutionProviderRepository = $this->app->get(SpatieIgnitionContractsSolutionProviderRepository::class);
$solutionsRepository = new IgnitionSolutionsRepository($solutionProviderRepository);
} else {
$solutionsRepository = new NullSolutionsRepository();
}
$writer = new Writer($solutionsRepository);
$handler = new Handler($writer);
return new Provider(null, $handler);
});
/** @var IlluminateContractsDebugExceptionHandler $appExceptionHandler */
$appExceptionHandler = $this->app->make(ExceptionHandlerContract::class);
$this->app->singleton(
ExceptionHandlerContract::class,
function ($app) use ($appExceptionHandler) {
return new ExceptionHandler($app, $appExceptionHandler);
}
);
}
}
/**
* {@inheritdoc}
*/
public function provides()
{
return [ProviderContract::class];
}
}