Example #1
0
 public function load($resource, $type = null)
 {
     if (true === $this->loaded) {
         throw new \RuntimeException('Do not add this loader twice');
     }
     $routes = new RouteCollection();
     $contextConfigLoader = $this->contextConfigLoader;
     foreach ($contextConfigLoader->getRouting() as $routing) {
         foreach ($routing as $id => $info) {
             if (array_key_exists('pattern', $info)) {
                 $route = new Route($info['pattern']);
                 // merge options and defaults
                 if (array_key_exists('defaults', $info)) {
                     $route->addDefaults($info['defaults']);
                 }
                 if (array_key_exists('options', $info)) {
                     $route->addOptions($info['options']);
                 }
                 if (array_key_exists('requirements', $info)) {
                     $route->addRequirements($info['requirements']);
                 }
             }
             $routes->add($id, $route);
         }
     }
     return $routes;
 }
Example #2
0
 public function load($resource, $type = null)
 {
     $collection = new RouteCollection();
     //load static routes
     $importedRoutes = $this->import('@AppBundle/Resources/config/static-routing.yml', 'yaml');
     $collection->addCollection($importedRoutes);
     //load dynamic routes from database
     $pages = $this->doctrine->getRepository('DataBundle:Page')->findBy(['active' => true], ['ordering' => 'asc']);
     $importedRoutes = new RouteCollection();
     //add default page if no pages are defined
     if (count($pages) == 0) {
         $route = new Route('/', ['_controller' => 'AppBundle:Page:defaultIndex']);
         $importedRoutes->add('index', $route);
     }
     foreach ($pages as $page) {
         $route = new Route('/' . $page->getSlug(), ['_controller' => 'AppBundle:Page:page']);
         //todo: make slug conversion safe
         if ($page->getIsIndex()) {
             $name = 'index';
         } else {
             $name = str_replace('/', '', strtolower(trim($page->getTitle())));
         }
         $importedRoutes->add($name, $route);
         //generate blog post url for tag
         if ($page->getIsBlogTag() && !is_null($page->getTag())) {
             $route = new Route('/' . trim($page->getSlug()) . '/post/{slug}', ['_controller' => 'AppBundle:Page:post']);
             $route->addOptions(['post_from' => 'tag']);
             $name = str_replace('/', '', strtolower(trim($page->getTitle())) . '_post');
             $importedRoutes->add($name, $route);
         }
         //generate blog post url for blog
         if ($page->getIsBlog() && !is_null($page->getBlog())) {
             $route = new Route('/' . trim($page->getSlug()) . '/post/{slug}', ['_controller' => 'AppBundle:Page:post']);
             $route->addOptions(['post_from' => 'blog']);
             $name = str_replace('/', '', strtolower(trim($page->getTitle())) . '_post');
             $importedRoutes->add($name, $route);
         }
     }
     $collection->addCollection($importedRoutes);
     return $collection;
 }