setRootControllerNamespace(); if ($this->app->routesAreCached()) { $this->loadCachedRoutes(); } else { $this->loadRoutes(); $this->app->booted(function () use ($router) { $router->getRoutes()->refreshNameLookups(); }); } } /** * Set the root controller namespace for the application. * * @return void */ protected function setRootControllerNamespace() { if (is_null($this->namespace)) { return; } $this->app[UrlGenerator::class]->setRootControllerNamespace($this->namespace); } /** * Load the cached routes for the application. * * @return void */ protected function loadCachedRoutes() { $this->app->booted(function () { require $this->app->getCachedRoutesPath(); }); } /** * Load the application routes. * * @return void */ protected function loadRoutes() { $this->app->call([$this, 'map']); } /** * Load the standard routes file for the application. * * @param string $path * @return mixed */ protected function loadRoutesFrom($path) { $router = $this->app->make(Router::class); if (is_null($this->namespace)) { return require $path; } $router->group(['namespace' => $this->namespace], function (Router $router) use ($path) { require $path; }); } /** * Register the service provider. * * @return void */ public function register() { // } /** * Pass dynamic methods onto the router instance. * * @param string $method * @param array $parameters * @return mixed */ public function __call($method, $parameters) { return call_user_func_array([$this->app->make(Router::class), $method], $parameters); } }