Exemplo n.º 1
0
 protected function request($path)
 {
     $request = new Request();
     $root = "/test";
     $request->setRoot($root);
     $request->getUri()->setPath("{$root}/{$path}");
     return $request;
 }
Exemplo n.º 2
0
 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);
 }
Exemplo n.º 3
0
 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);
 }
Exemplo n.º 4
0
 /**
  * @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;
 }
Exemplo n.º 5
0
 /**
  * @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;
 }
Exemplo n.º 6
0
 /**
  * @param Request $request
  * @return string
  */
 protected function requestSubject($request)
 {
     $base = rtrim($request->getRoot(), '/');
     $uri = $request->getUri();
     $subject = substr($uri->getPath(), strlen($base));
     return $subject;
 }