Controller_PatternRouter::route PHP Метод

route() публичный Метод

Perform the necessary changes in the APP's page. After this you can still get the orginal page in app->page_orig.
public route ( )
    public function route()
    {
        $this->app->page_orig = $this->app->page;
        foreach ($this->links as $page => $args) {
            $page = str_replace('/', '_', $page);
            // Exact match, no more routing needed
            if ($this->app->page == $page) {
                return $this;
            }
            $page .= '_';
            if (substr($this->app->page, 0, strlen($page)) == $page) {
                $rest = explode('_', substr($this->app->page, strlen($page)));
                reset($args);
                foreach ($rest as $arg) {
                    list($key, $match) = each($args);
                    if (is_numeric($key) || is_null($key)) {
                        $key = $match;
                    } else {
                        if (!preg_match($match, $arg)) {
                            break 2;
                        }
                    }
                    $_GET[$key] = $arg;
                }
                $this->app->page = substr($page, 0, -1);
                return $this;
            }
            //$misc=explode()$this->app->page = substr
        }
        $r = $_SERVER['REQUEST_URI'];
        foreach ($this->rules as $rule) {
            if (preg_match('/' . $rule[0] . '/', $r, $t)) {
                $this->app->page = $rule[1];
                if ($rule[2]) {
                    foreach ($rule[2] as $k => $v) {
                        $_GET[$v] = $t[$k + 1];
                    }
                }
            }
        }
    }