/** * Loads a resource. * * @param mixed $resource The resource * @param string|null $type The resource type or null if unknown * * @return RouteCollection */ public function load($resource, $type = null) { $routes = new RouteCollection(); foreach ($this->pool->getControllers() as $controllerKey => $controller) { /** @var CrudController $controller */ foreach ($controller->getActions() as $actionKey => $action) { /** @var ActionInterface $action */ $options = $action->getOptions(); $pattern = rtrim($controller->getRoutePrefix() . $options['pattern'], '/'); $defaults = $options['defaults']; $defaults['_controller'] = $controllerKey . ':' . 'callAction'; $defaults['_action'] = $actionKey; $doc = $this->getDoc($controller, $actionKey, $options); $route = new Route($pattern, $defaults, $options['requirements'], $options['options'], $options['host'], $options['schemes'], $options['methods'], $options['condition']); $route->setDoc($doc); $routeSuffix = empty($options['route_suffix']) ? $actionKey : $options['route_suffix']; $routes->add($controllerKey . '.' . $routeSuffix, $route); } } return $routes; }