%PDF- %PDF-
Direktori : /var/www/pjcold2/vendor/laravel/telescope/src/ |
Current File : //var/www/pjcold2/vendor/laravel/telescope/src/TelescopeServiceProvider.php |
<?php namespace Laravel\Telescope; use Illuminate\Support\Facades\Route; use Illuminate\Support\ServiceProvider; use Laravel\Telescope\Contracts\ClearableRepository; use Laravel\Telescope\Contracts\EntriesRepository; use Laravel\Telescope\Contracts\PrunableRepository; use Laravel\Telescope\Storage\DatabaseEntriesRepository; class TelescopeServiceProvider extends ServiceProvider { /** * Bootstrap any package services. * * @return void */ public function boot() { if (! config('telescope.enabled')) { return; } Route::middlewareGroup('telescope', config('telescope.middleware', [])); $this->registerRoutes(); $this->registerMigrations(); $this->registerPublishing(); Telescope::start($this->app); Telescope::listenForStorageOpportunities($this->app); $this->loadViewsFrom( __DIR__.'/../resources/views', 'telescope' ); } /** * Register the package routes. * * @return void */ private function registerRoutes() { Route::group($this->routeConfiguration(), function () { $this->loadRoutesFrom(__DIR__.'/Http/routes.php'); }); } /** * Get the Telescope route group configuration array. * * @return array */ private function routeConfiguration() { return [ 'domain' => config('telescope.domain', null), 'namespace' => 'Laravel\Telescope\Http\Controllers', 'prefix' => config('telescope.path'), 'middleware' => 'telescope', ]; } /** * Register the package's migrations. * * @return void */ private function registerMigrations() { if ($this->app->runningInConsole() && $this->shouldMigrate()) { $this->loadMigrationsFrom(__DIR__.'/Storage/migrations'); } } /** * Register the package's publishable resources. * * @return void */ private function registerPublishing() { if ($this->app->runningInConsole()) { $this->publishes([ __DIR__.'/Storage/migrations' => database_path('migrations'), ], 'telescope-migrations'); $this->publishes([ __DIR__.'/../public' => public_path('vendor/telescope'), ], 'telescope-assets'); $this->publishes([ __DIR__.'/../config/telescope.php' => config_path('telescope.php'), ], 'telescope-config'); $this->publishes([ __DIR__.'/../stubs/TelescopeServiceProvider.stub' => app_path('Providers/TelescopeServiceProvider.php'), ], 'telescope-provider'); } } /** * Register any package services. * * @return void */ public function register() { $this->mergeConfigFrom( __DIR__.'/../config/telescope.php', 'telescope' ); $this->registerStorageDriver(); $this->commands([ Console\ClearCommand::class, Console\InstallCommand::class, Console\PruneCommand::class, Console\PublishCommand::class, ]); } /** * Register the package storage driver. * * @return void */ protected function registerStorageDriver() { $driver = config('telescope.driver'); if (method_exists($this, $method = 'register'.ucfirst($driver).'Driver')) { $this->$method(); } } /** * Register the package database storage driver. * * @return void */ protected function registerDatabaseDriver() { $this->app->singleton( EntriesRepository::class, DatabaseEntriesRepository::class ); $this->app->singleton( ClearableRepository::class, DatabaseEntriesRepository::class ); $this->app->singleton( PrunableRepository::class, DatabaseEntriesRepository::class ); $this->app->when(DatabaseEntriesRepository::class) ->needs('$connection') ->give(config('telescope.storage.database.connection')); $this->app->when(DatabaseEntriesRepository::class) ->needs('$chunkSize') ->give(config('telescope.storage.database.chunk')); } /** * Determine if we should register the migrations. * * @return bool */ protected function shouldMigrate() { return Telescope::$runsMigrations && config('telescope.driver') === 'database'; } }