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(\Spatie\Ignition\Contracts\SolutionProviderRepository::class)) { /** @var \Spatie\Ignition\Contracts\SolutionProviderRepository $solutionProviderRepository */ $solutionProviderRepository = $this->app->get(\Spatie\Ignition\Contracts\SolutionProviderRepository::class); $solutionsRepository = new IgnitionSolutionsRepository($solutionProviderRepository); } else { $solutionsRepository = new NullSolutionsRepository(); } $writer = new Writer($solutionsRepository); $handler = new Handler($writer); return new Provider(null, $handler); }); /** @var \Illuminate\Contracts\Debug\ExceptionHandler $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]; } }