function __construct($name, $url, $template, $action, $permission, $code, $message, $content_type) { $this->name = $name; $this->template = $template; $this->action = $action; $this->permission = $permission; $this->code = $code; $this->message = $message; $this->content_type = $content_type; if ($url) { if (preg_match_all('/\\(([\\w:]+) +\\-> +([\\w:]+)\\)/', $url, $match)) { $patterns = $match[2]; $this->params = $match[1]; $url = preg_replace('/(\\([\\w:]+ +\\-> +[\\w:]+\\))/i', '%', $url); $url = preg_escape($url); foreach ($patterns as $pattern) { $url = preg_replace('/%/', '(' . validate::get($pattern) . ')', $url, 1); } $this->url = '/\\A' . $url . '\\Z/'; } else { $url = preg_escape($url); $this->url = '/\\A' . $url . '\\Z/'; } } else { $this->data['template'] = null; } }