Example #1
0
 public function parseRoutes(SimpleXMLElement $xml)
 {
     static::registerNamespace($xml);
     $routes = array();
     /** @var SimpleXmlElement $routeXml */
     foreach ($xml->xpath("//routes:route") as $routeXml) {
         $route = new Route($routeXml->getAttributeAsPhp("id"), $routeXml->getAttributeAsPhp("path"));
         if ($methods = $routeXml->getAttributeAsPhp("methods")) {
             $route->setMethods($methods);
         }
         static::registerNamespace($routeXml);
         /** @var SimpleXmlElement $defaultXml */
         foreach ($routeXml->xpath(".//routes:default") as $defaultXml) {
             $route->addDefault($defaultXml->getAttributeAsPhp("key"), (string) $defaultXml);
         }
         foreach ($routeXml->xpath(".//routes:requirement") as $defaultXml) {
             $route->addRequirement($defaultXml->getAttributeAsPhp("key"), (string) $defaultXml);
         }
         $routes[$route->getId()] = $route;
     }
     return $routes;
 }