예제 #1
0
파일: Uri.php 프로젝트: dweelie/grav
 /**
  * Initialize the URI class with a url passed via parameter.
  * Used for testing purposes.
  *
  * @param string $url the URL to use in the class
  *
  * @return string
  */
 public function initializeWithUrl($url = '')
 {
     if (!$url) {
         return $this;
     }
     $this->paths = [];
     $this->params = [];
     $this->query = [];
     $this->name = [];
     $this->env = [];
     $this->port = [];
     $this->uri = [];
     $this->base = [];
     $this->host = [];
     $this->root = [];
     $this->url = [];
     $this->fragment = [];
     $grav = Grav::instance();
     $language = $grav['language'];
     $uri_bits = Uri::parseUrl($url);
     $this->name = $uri_bits['host'];
     $this->port = isset($uri_bits['port']) ? $uri_bits['port'] : '80';
     $this->uri = $uri_bits['path'];
     // set active language
     $uri = $language->setActiveFromUri($this->uri);
     if (isset($uri_bits['params'])) {
         $this->params = $uri_bits['params'];
     }
     if (isset($uri_bits['query'])) {
         $this->uri .= '?' . $uri_bits['query'];
         parse_str($uri_bits['query'], $this->query);
     }
     if (isset($uri_bits['fragment'])) {
         $this->fragment = $uri_bits['fragment'];
     }
     $this->base = $this->buildBaseUrl();
     $this->host = $this->buildHost();
     $this->env = $this->buildEnvironment();
     $this->root_path = $this->buildRootPath();
     $this->root = $this->base . $this->root_path;
     $this->url = $this->root . $uri;
     $this->path = $uri;
     return $this;
 }