Nette\Routing\CliRouter::match PHP Метод

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

Maps command line arguments to a Request object.
public match ( Nette\Http\IRequest $request ) : array | null
$request Nette\Http\IRequest
Результат array | null
    public function match(Nette\Http\IRequest $request)
    {
        if (empty($_SERVER['argv']) || !is_array($_SERVER['argv'])) {
            return NULL;
        }
        $names = ['action'];
        $params = $this->defaults;
        $args = $_SERVER['argv'];
        array_shift($args);
        $args[] = '--';
        foreach ($args as $arg) {
            $opt = preg_replace('#/|-+#A', '', $arg);
            if ($opt === $arg) {
                if (isset($flag) || ($flag = array_shift($names))) {
                    $params[$flag] = $arg;
                } else {
                    $params[] = $arg;
                }
                $flag = NULL;
                continue;
            }
            if (isset($flag)) {
                $params[$flag] = TRUE;
                $flag = NULL;
            }
            if ($opt !== '') {
                $pair = explode('=', $opt, 2);
                if (isset($pair[1])) {
                    $params[$pair[0]] = $pair[1];
                } else {
                    $flag = $pair[0];
                }
            }
        }
        return $params;
    }