/** * 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); }
public function testRetrieveRetrievesPortFromGlobalServer() { $_SERVER = ['SERVER_PORT' => '443']; $this->assertSame(443, UriPortFactory::retrieve()); }