Example #1
0
 /**
  * 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;
 }