| 
									
										
										
										
											2016-09-03 19:08:58 +08:00
										 |  |  | <?php namespace BookStack\Providers; | 
					
						
							| 
									
										
										
										
											2015-07-13 03:01:42 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-25 19:30:50 +08:00
										 |  |  | use Blade; | 
					
						
							|  |  |  | use BookStack\Entities\Book; | 
					
						
							|  |  |  | use BookStack\Entities\Bookshelf; | 
					
						
							|  |  |  | use BookStack\Entities\Chapter; | 
					
						
							|  |  |  | use BookStack\Entities\Page; | 
					
						
							|  |  |  | use BookStack\Settings\Setting; | 
					
						
							| 
									
										
										
										
											2018-09-25 23:58:03 +08:00
										 |  |  | use BookStack\Settings\SettingService; | 
					
						
							| 
									
										
										
										
											2018-09-25 19:30:50 +08:00
										 |  |  | use Illuminate\Database\Eloquent\Relations\Relation; | 
					
						
							| 
									
										
										
										
											2015-07-13 03:01:42 +08:00
										 |  |  | use Illuminate\Support\ServiceProvider; | 
					
						
							| 
									
										
										
										
											2018-09-25 19:30:50 +08:00
										 |  |  | use Schema; | 
					
						
							| 
									
										
										
										
											2016-12-31 22:38:04 +08:00
										 |  |  | use Validator; | 
					
						
							| 
									
										
										
										
											2015-07-13 03:01:42 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | class AppServiceProvider extends ServiceProvider | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Bootstrap any application services. | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @return void | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function boot() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2016-07-02 03:11:49 +08:00
										 |  |  |         // Custom validation methods
 | 
					
						
							| 
									
										
										
										
											2018-03-24 23:25:13 +08:00
										 |  |  |         Validator::extend('is_image', function ($attribute, $value, $parameters, $validator) { | 
					
						
							| 
									
										
										
										
											2016-07-02 03:11:49 +08:00
										 |  |  |             $imageMimes = ['image/png', 'image/bmp', 'image/gif', 'image/jpeg', 'image/jpg', 'image/tiff', 'image/webp']; | 
					
						
							|  |  |  |             return in_array($value->getMimeType(), $imageMimes); | 
					
						
							|  |  |  |         }); | 
					
						
							| 
									
										
										
										
											2017-02-04 19:01:49 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-25 19:30:50 +08:00
										 |  |  |         // Custom blade view directives
 | 
					
						
							|  |  |  |         Blade::directive('icon', function ($expression) { | 
					
						
							| 
									
										
										
										
											2017-02-04 19:01:49 +08:00
										 |  |  |             return "<?php echo icon($expression); ?>"; | 
					
						
							|  |  |  |         }); | 
					
						
							| 
									
										
										
										
											2017-07-03 00:20:05 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         // Allow longer string lengths after upgrade to utf8mb4
 | 
					
						
							| 
									
										
										
										
											2018-09-25 19:30:50 +08:00
										 |  |  |         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, | 
					
						
							|  |  |  |         ]); | 
					
						
							| 
									
										
										
										
											2015-07-13 03:01:42 +08:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      * Register any application services. | 
					
						
							|  |  |  |      * | 
					
						
							|  |  |  |      * @return void | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     public function register() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2018-01-29 00:58:52 +08:00
										 |  |  |         $this->app->singleton(SettingService::class, function ($app) { | 
					
						
							| 
									
										
										
										
											2017-02-06 02:57:57 +08:00
										 |  |  |             return new SettingService($app->make(Setting::class), $app->make('Illuminate\Contracts\Cache\Repository')); | 
					
						
							|  |  |  |         }); | 
					
						
							| 
									
										
										
										
											2015-07-13 03:01:42 +08:00
										 |  |  |     } | 
					
						
							|  |  |  | } |