routeCollection = $routeCollection; $this->controllerReflector = $controllerReflector; $this->routeDescribers = $routeDescribers; } public function describe(Swagger $api) { if (0 === count($this->routeDescribers)) { return; } foreach ($this->routeCollection->all() as $route) { if (!$route->hasDefault('_controller')) { continue; } // if able to resolve the controller $controller = $route->getDefault('_controller'); if ($method = $this->controllerReflector->getReflectionMethod($controller)) { // Extract as many information as possible about this route foreach ($this->routeDescribers as $describer) { if ($describer instanceof ModelRegistryAwareInterface) { $describer->setModelRegistry($this->modelRegistry); } $describer->describe($api, $route, $method); } } } } }