示例#1
0
 private function _getRoutes()
 {
     $routes = array();
     foreach ($this->routing->route as $route) {
         $paths = array(self::ATTRIBUTE_NAMESPACE => $this->getModuleNamespace() . '\\Controllers', self::ATTRIBUTE_MODULE => $this->getModuleName(), self::ATTRIBUTE_CONTROLLER => self::VALUE_INDEX, self::ATTRIBUTE_ACTION => self::VALUE_INDEX);
         $pattern = '/' . trim((string) $route);
         //var_dump($pattern);
         foreach ($route->attributes() as $attribute => $value) {
             if ($attribute === self::ATTRIBUTE_HTTP_METHODS || $attribute === self::ATTRIBUTE_NAME) {
                 continue;
             }
             $value = (string) $value;
             $paths[(string) $attribute] = is_numeric($value) ? (int) $value : $value;
         }
         if ($paths[self::ATTRIBUTE_MODULE] != $this->getModuleName()) {
             unset($paths[self::ATTRIBUTE_NAMESPACE]);
         }
         $Route = new Route($pattern, $paths);
         if (isset($route[self::ATTRIBUTE_HTTP_METHODS])) {
             $httpMethods = explode(',', (string) $route[self::ATTRIBUTE_HTTP_METHODS]);
             $Route->via($httpMethods);
         }
         if (isset($route[self::ATTRIBUTE_NAME])) {
             $Route->setName((string) $route[self::ATTRIBUTE_NAME]);
         }
         array_push($routes, $Route);
     }
     return $routes;
 }