publishes([ __DIR__.'/../../config/config.php' => config_path('image.php') ]); // setup intervention/imagecache if package is installed $this->cacheIsInstalled() ? $this->bootstrapImageCache() : null; } /** * Register the service provider. * * @return void */ public function register() { $app = $this->app; // merge default config $this->mergeConfigFrom( __DIR__.'/../../config/config.php', 'image' ); // create image $app->singleton('image', function ($app) { return new ImageManager($this->getImageConfig($app)); }); $app->alias('image', 'Intervention\Image\ImageManager'); } /** * Bootstrap imagecache * * @return void */ protected function bootstrapImageCache() { $app = $this->app; $config = __DIR__.'/../../../../imagecache/src/config/config.php'; $this->publishes([ $config => config_path('imagecache.php') ]); // merge default config $this->mergeConfigFrom( $config, 'imagecache' ); // imagecache route if (is_string(config('imagecache.route'))) { $filename_pattern = '[ \w\\.\\/\\-\\@\(\)]+'; // route to access template applied image file $app['router']->get(config('imagecache.route').'/{template}/{filename}', [ 'uses' => 'Intervention\Image\ImageCacheController@getResponse', 'as' => 'imagecache' ])->where(['filename' => $filename_pattern]); } } /** * Return image configuration as array * * @param Application $app * @return array */ private function getImageConfig($app) { $config = $app['config']->get('image'); if (is_null($config)) { return []; } return $config; } }