X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/ddb7f33868ea499ab8f48a7062f145e8c0fbe02f..refs/pull/3918/head:/app/Providers/AppServiceProvider.php diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 3a1b4f42e..d0841059b 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -1,22 +1,45 @@ - 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. * @@ -32,43 +55,16 @@ class AppServiceProvider extends ServiceProvider URL::forceScheme($isHttps ? 'https' : 'http'); } - // Custom validation methods - Validator::extend('image_extension', function ($attribute, $value, $parameters, $validator) { - $validImageExtensions = ['png', 'jpg', 'jpeg', 'bmp', 'gif', 'tiff', 'webp']; - return in_array(strtolower($value->getClientOriginalExtension()), $validImageExtensions); - }); - - Validator::extend('no_double_extension', function ($attribute, $value, $parameters, $validator) { - $uploadName = $value->getClientOriginalName(); - return substr_count($uploadName, '.') < 2; - }); - - // Custom blade view directives - Blade::directive('icon', function ($expression) { - return ""; - }); - - Blade::directive('exposeTranslations', function ($expression) { - return "startPush('translations'); ?>" . - "" . - '' . "\n" . - "" . - 'stopPush(); ?>'; - }); - // Allow longer string lengths after upgrade to utf8mb4 Schema::defaultStringLength(191); - // Set morph-map due to namespace changes - Relation::morphMap([ - 'BookStack\\Bookshelf' => Bookshelf::class, - 'BookStack\\Book' => Book::class, - 'BookStack\\Chapter' => Chapter::class, - 'BookStack\\Page' => Page::class, + // Set morph-map for our relations to friendlier aliases + Relation::enforceMorphMap([ + 'bookshelf' => Bookshelf::class, + 'book' => Book::class, + 'chapter' => Chapter::class, + 'page' => Page::class, ]); - - // View Composers - View::composer('partials.breadcrumbs', BreadcrumbsViewComposer::class); } /** @@ -78,8 +74,10 @@ class AppServiceProvider extends ServiceProvider */ public function register() { - $this->app->singleton(SettingService::class, function ($app) { - return new SettingService($app->make(Setting::class), $app->make('Illuminate\Contracts\Cache\Repository')); + $this->app->bind(HttpClientInterface::class, function ($app) { + return new Client([ + 'timeout' => 3, + ]); }); } }