/** * Override the view finder used by Laravel to be our Theme view finder. * * @return void */ protected function overrideViewFinder() { $originalViewFinder = $this->app['view.finder']; $this->app['view.finder'] = $this->app->share(function ($app) use($originalViewFinder) { $paths = array_merge($app['config']['view.paths'], $originalViewFinder->getPaths()); $viewFinder = new IlluminateViewFinder($app['files'], $paths, $originalViewFinder->getExtensions()); $viewFinder->setThemeBag($app['themes']); foreach ($originalViewFinder->getPaths() as $location) { $viewFinder->addLocation($location); } foreach ($originalViewFinder->getHints() as $namespace => $hints) { $viewFinder->addNamespace($namespace, $hints); } return $viewFinder; }); // Now that we have overridden the "view.finder" IoC offest, we // need to re-register the factory as we cannot reset it // on the Factory at runtime, yet. $viewServiceProvider = new ViewServiceProvider($this->app); $viewServiceProvider->registerFactory(); }
/** @inheritdoc */ public function registerFactory() { parent::registerFactory(); return $this; }