X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/0930e8519c508d46a848db93c76f258da5ee84a9..refs/pull/3918/head:/app/Providers/AppServiceProvider.php diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 3c1212e32..d0841059b 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -2,32 +2,44 @@ namespace BookStack\Providers; -use BookStack\Auth\Access\LoginService; +use BookStack\Actions\ActivityLogger; use BookStack\Auth\Access\SocialAuthService; -use BookStack\Entities\BreadcrumbsViewComposer; use BookStack\Entities\Models\Book; use BookStack\Entities\Models\Bookshelf; use BookStack\Entities\Models\Chapter; use BookStack\Entities\Models\Page; use BookStack\Exceptions\WhoopsBookStackPrettyHandler; -use BookStack\Settings\Setting; use BookStack\Settings\SettingService; use BookStack\Util\CspService; use GuzzleHttp\Client; -use Illuminate\Contracts\Cache\Repository; use Illuminate\Database\Eloquent\Relations\Relation; -use Illuminate\Pagination\Paginator; -use Illuminate\Support\Facades\Blade; use Illuminate\Support\Facades\Schema; use Illuminate\Support\Facades\URL; -use Illuminate\Support\Facades\View; use Illuminate\Support\ServiceProvider; -use Laravel\Socialite\Contracts\Factory as SocialiteFactory; use Psr\Http\Client\ClientInterface as HttpClientInterface; use Whoops\Handler\HandlerInterface; class AppServiceProvider extends ServiceProvider { + /** + * Custom container bindings to register. + * @var string[] + */ + public $bindings = [ + HandlerInterface::class => WhoopsBookStackPrettyHandler::class, + ]; + + /** + * Custom singleton bindings to register. + * @var string[] + */ + public $singletons = [ + 'activity' => ActivityLogger::class, + SettingService::class => SettingService::class, + SocialAuthService::class => SocialAuthService::class, + CspService::class => CspService::class, + ]; + /** * Bootstrap any application services. * @@ -43,11 +55,6 @@ class AppServiceProvider extends ServiceProvider URL::forceScheme($isHttps ? 'https' : 'http'); } - // Custom blade view directives - Blade::directive('icon', function ($expression) { - return ""; - }); - // Allow longer string lengths after upgrade to utf8mb4 Schema::defaultStringLength(191); @@ -58,12 +65,6 @@ class AppServiceProvider extends ServiceProvider 'chapter' => Chapter::class, 'page' => Page::class, ]); - - // View Composers - View::composer('entities.breadcrumbs', BreadcrumbsViewComposer::class); - - // Set paginator to use bootstrap-style pagination - Paginator::useBootstrap(); } /** @@ -73,22 +74,6 @@ class AppServiceProvider extends ServiceProvider */ public function register() { - $this->app->bind(HandlerInterface::class, function ($app) { - return $app->make(WhoopsBookStackPrettyHandler::class); - }); - - $this->app->singleton(SettingService::class, function ($app) { - return new SettingService($app->make(Setting::class), $app->make(Repository::class)); - }); - - $this->app->singleton(SocialAuthService::class, function ($app) { - return new SocialAuthService($app->make(SocialiteFactory::class), $app->make(LoginService::class)); - }); - - $this->app->singleton(CspService::class, function ($app) { - return new CspService(); - }); - $this->app->bind(HttpClientInterface::class, function ($app) { return new Client([ 'timeout' => 3,