+ 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 "<?php echo icon($expression); ?>";
+ });
+
+ // 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,
+ ]);
+
+ // View Composers
+ View::composer('partials.breadcrumbs', BreadcrumbsViewComposer::class);