Вход Регистрация
Файл: 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];
    }
}
Онлайн: 0
Реклама