public function testMakeReturnsForcedPort()
 {
     $port = '8080';
     UriPortFactory::setForcedPort($port);
     $server = ['SERVER_PORT' => '80'];
     $this->assertEquals($port, UriPortFactory::make($server));
 }
示例#2
0
 /**
  * Makes the instance of Es\Http\Uri.
  *
  * @param array $server Optional; null by default or empty array means
  *                      global $_SERVER. The source data
  *
  * @return \Es\Http\Uri The instance of Uri
  */
 public static function make(array $server = null)
 {
     $scheme = UriSchemeFactory::make($server);
     $host = UriHostFactory::make($server);
     $port = UriPortFactory::make($server);
     $path = UriPathFactory::make($server);
     $query = UriQueryFactory::make($server);
     $url = '';
     if ($host) {
         $url .= $scheme . '://' . $host . ':' . $port;
         $path = '/' . ltrim($path, '/');
     }
     $url .= $path;
     if ($query) {
         $url .= '?' . $query;
     }
     $uri = new Uri($url);
     if ($host) {
         return $uri;
     }
     return $uri->withScheme($scheme)->withPort($port);
 }