/** * @param string $uri * @param string $method * @param array $params */ public function dispatch($uri, $method = 'get', $params = []) { $this->request = new HttpRequest($uri); $this->request->setMethod($method); $this->request->setParams($params); $this->request->dispatch(); $this->dump(); }
/** * @param HttpRequest $request * * @return bool */ public function resolve(HttpRequest $request) { /** * pre-filter to match request */ if (KENDO_PROFILER) { $profilerKey = app()->profiler()->start('request', 'routing.resolve', $request->getPath()); } $path = $request->getPath(); $host = null; $result = new RoutingResult([]); $matched = false; // ensure it's not children foreach ($this->masters as $name => $route) { if (!$route->resolve($path, $host, $result)) { continue; } $vars = $result->getVars(); $request->setControllerName($vars[HttpRequest::CONTROLLER_KEY]); $request->setActionName($vars[HttpRequest::ACTION_KEY]); unset($vars[HttpRequest::CONTROLLER_KEY], $vars[HttpRequest::ACTION_KEY]); $request->setParams($vars); $matched = true; break; } if (!$matched) { $request->setControllerName('Platform\\Core\\Controller\\ErrorController'); $request->setActionName('404'); } if (KENDO_PROFILER and !empty($profilerKey)) { app()->profiler()->stop($profilerKey); } return true; }