protected function request($path) { $request = new Request(); $root = "/test"; $request->setRoot($root); $request->getUri()->setPath("{$root}/{$path}"); return $request; }
public function testSimple1() { $request = new Request(); $root = "/demo"; $request->setRoot($root); $request->getUri()->setPath("{$root}/admin/view/42"); $context = new R\Destination(); // $context->setRemainder("/admin/article/view/123/the-slug"); $route = new R\RegexRoute("|^/admin/(?<action>[\\w]+)|", "{~}/admin/{action}"); $dest = $route->route($request, $context); // var_dump($dest); $uri = $route->assemble(R\Destination::match(['action' => "index"]), $root); // var_dump($uri); }
public function testSimple1() { $request = new Request(); $root = "/demo"; $request->setRoot($root); $request->getUri()->setPath("{$root}/admin/view/segment"); $context = new Rt\Destination(); $route = new Rt\SegmentRoute("/admin[/{action}]"); $route->setPartial(); $dest = $route->route($request, $context); // var_dump($dest); $uri = $route->assemble(Rt\Destination::match(['action' => "index"]), $root); // var_dump($uri); }
/** * @param Request $request * @param Input $input * @return self */ public function init(Request $request, Input $input, array $arguments) { $options = []; $path = ""; foreach ($arguments as $offset => $arg) { if ($offset == 0) { continue; } if (substr($arg, 0, 2) == '--') { // [option] list($n, $v) = $this->parseOption($arg); $options[$n] = $v; } else { // [arguments] $path .= '/' . urlencode($arg); } } if (!$path) { $path = '/'; } $query = new Query($options); $request->setRoot(''); $request->setUri($path); $input->setParams($options); $request->getUri()->setQuery($query->toString()); return $this; }
/** * @param Message\Request $request * @param int $modified * @param string $etag * @return boolean */ protected function freshResponse(Message\Request $request, $modified, $etag) { if (!$this->isCached()) { $fresh = true; } else { $headers = $request->getHeaders(); $since = $headers->get('If-Modified-Since'); $match = $headers->get('If-None-Match'); $fresh = $this->etagChanged($etag, $match) || $this->timeChanged($modified, $since); } return $fresh; }
/** * @param Request $request * @return string */ protected function requestSubject($request) { $base = rtrim($request->getRoot(), '/'); $uri = $request->getUri(); $subject = substr($uri->getPath(), strlen($base)); return $subject; }