Example #1
0
 /**
  * Create a URL object.
  *
  * @param string|Url|Request $request
  * @param array $routes
  */
 public function __construct($request = null, array $routes = [])
 {
     if (is_string($request) || is_a($request, static::class)) {
         $request = (string) $request;
         $this->request = Request::create($request);
         if (false !== strpos($request, '#')) {
             $this->fragment = (string) S::create($request)->substr(strpos($request, '#'))->removeLeft('#');
         }
     } elseif (is_a($request, Request::class)) {
         $this->request = $request;
     } else {
         $this->request = Request::createFromGlobals();
     }
     $this->routes = $routes;
     $this->scheme = $this->request->getScheme();
     $this->user = $this->request->getUser();
     $this->password = $this->request->getPassword();
     $this->host = $this->request->getHost();
     $this->port = $this->request->getPort();
     $this->path = array_filter(explode('/', $this->request->getPathInfo()));
     parse_str($this->request->getQueryString(), $this->query);
 }