server === null) { if (isset($_SERVER['argv'])) { $this->server = $_SERVER['argv']; array_shift($this->server); } else { $this->server = []; } } return $this->server; } /** * 设置服务器相关变量(兼容Web模式) * * @param array $params 参数列表 * @return $this */ public function setServer($params) { $this->server = $params; return $this; } /** * 解析命令行参数 * * @return array */ public function resolve() { $rawParams = $this->getServer(); if (isset($rawParams[0])) { $route = $rawParams[0]; array_shift($rawParams); } else { $route = ''; } $params = []; foreach ($rawParams as $param) { if (preg_match('/^--(\w+)(?:=(.*))?$/', $param, $matches) || preg_match('/^-(\w+)(?:=(.*))?$/', $param, $matches)) { $name = $matches[1]; $params[$name] = isset($matches[2]) ? $matches[2] : true; } else { $params[] = $param; } } $this->server['path_info'] = $route; $this->get = $params; $this->post = $params; return [$route, $params]; } }