/** * Bootstrap any application services. * * @return void */ public function boot(PluginManager $plugins) { // store paths of class files of plugins $src_paths = []; $loader = $this->app->make('translation.loader'); // make view instead of view.finder since the finder is defined as not a singleton $finder = $this->app->make('view'); foreach ($plugins->getPlugins() as $plugin) { $src_paths[$plugin->getNameSpace()] = $plugin->getPath() . "/src"; // add paths of translation files for namespace hints $loader->addNamespace($plugin->getNameSpace(), $plugin->getPath() . "/lang"); // add paths of views $finder->addNamespace($plugin->getNameSpace(), $plugin->getPath() . "/views"); } $this->registerClassAutoloader($src_paths); $bootstrappers = $plugins->getEnabledBootstrappers(); foreach ($bootstrappers as $file) { $bootstrapper = (require $file); // call closure using service container $this->app->call($bootstrapper); } }