X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/e211f313704d3a0a00d8d358bd49eb310f9531c5..refs/pull/3918/head:/app/Providers/AppServiceProvider.php diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 66f40569a..d0841059b 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -1,11 +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. * @@ -13,13 +47,24 @@ class AppServiceProvider extends ServiceProvider */ public function boot() { - // Custom validation methods - Validator::extend('is_image', function($attribute, $value, $parameters, $validator) { - $imageMimes = ['image/png', 'image/bmp', 'image/gif', 'image/jpeg', 'image/jpg', 'image/tiff', 'image/webp']; - return in_array($value->getMimeType(), $imageMimes); - }); + // Set root URL + $appUrl = config('app.url'); + if ($appUrl) { + $isHttps = (strpos($appUrl, 'https://') === 0); + URL::forceRootUrl($appUrl); + URL::forceScheme($isHttps ? 'https' : 'http'); + } - Carbon::setLocale(config('app.locale')); + // Allow longer string lengths after upgrade to utf8mb4 + Schema::defaultStringLength(191); + + // Set morph-map for our relations to friendlier aliases + Relation::enforceMorphMap([ + 'bookshelf' => Bookshelf::class, + 'book' => Book::class, + 'chapter' => Chapter::class, + 'page' => Page::class, + ]); } /** @@ -29,6 +74,10 @@ class AppServiceProvider extends ServiceProvider */ public function register() { - // + $this->app->bind(HttpClientInterface::class, function ($app) { + return new Client([ + 'timeout' => 3, + ]); + }); } }