Slim 3 获取主机 url

Slim 3 get host url

在 Slim 3 中,此命令...

  print_r($request->getUri() );

Returns 这个列表...

Slim\Http\Uri Object
(
    [scheme:protected] => http
    [user:protected] => 
    [password:protected] => 
    [host:protected] => slimtree.test
    [port:protected] => 80
    [basePath:protected] => 
    [path:protected] => /
    [query:protected] => 
    [fragment:protected] => 
)

够了。

我在 SO 上阅读了所有与 Slim URL 相关的问题,有几个从未回答过问题,但我找不到答案。

必须有比这更好的获取主机基本路径的方法...

 $hostUrl = $request->getUri()->getScheme() . '://'
          . $request->getUri()->getHost()
          .($request->getUri()->getPort() ? ':' . $request->getUri()->getPort() : '')
 ;

为了得到这个...

http[s]://myDomain.com

要获取基数 URL,您可以从 Uri class 调用 getBaseUrl() 方法。要获得完整的 url,您可以将 Uri class 类型转换为字符串。

$uri = $request->getUri();
$baseUrl = $uri->getBaseUrl();
$fullUrl = (string) $uri;

Uri class 实现了 PSR-7 UriInterface 因此它实现了 __toString() 方法,当 Uri 实例被类型转换为字符串时调用该方法。