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; }
/** * Set Http methods constraints for router * * @param Route $route * @param array $httpMethods */ protected function setHttpMethods(Route $route, array $httpMethods) { foreach ($httpMethods as $idx => $method) { $httpMethods[$idx] = strtoupper($method); } $route->via($httpMethods); }