如何获取 public 个对象
How to get the public objects
我正在使用 Rackspace API 开发 PHP,这是我在这里使用的:
$file->setContent(fopen('sites/default/files/rackspace/' . $end_element, 'r+'));
$cdnUrl = $file->getPublicUrl();
print_r($cdnUrl);
它返回了下面提到的结构。
Guzzle\Http\Url Object
(
[scheme:protected] => http
[host:protected] => something.r2.cf3.rackcdn.com
[port:protected] =>
[username:protected] =>
[password:protected] =>
[path:protected] => /something-abc.jpg
[fragment:protected] =>
[query:protected] => Guzzle\Http\QueryString Object
(
[fieldSeparator:protected] => &
[valueSeparator:protected] => =
[urlEncode:protected] => RFC 3986
[aggregator:protected] =>
[data:protected] => Array
(
)
)
)
我这里需要的是这样的:
Guzzle\Http\Url Object
(
[scheme] => http
[host] => something.r2.cf3.rackcdn.com
[port] =>
[username] =>
[password] =>
[path] => /something-abc.jpg
[fragment] =>
[query] => Guzzle\Http\QueryString Object
(
[fieldSeparator] => &
[valueSeparator] => =
[urlEncode] => RFC 3986
[aggregator] =>
[data] => Array
(
)
)
)
这样至少我可以使用那些对象,有什么建议吗?
它是一个 Guzzle\Http\Url
对象,您将无法访问其受保护或私有的属性。 class 是 defined here,因此您可以使用任何 public 方法来访问其状态。
您也可以像这样将其转换为字符串:
$stringUrl = (string) $url;
或访问其他内容:
$host = $url->getHost(); // something.r2.cf3.rackcdn.com
$scheme = $url->getScheme(); // http
$port = $url->getPort();
$path = $url->getPath(); // something-abc.jpg
查询由另一个对象表示,Guzzle\Http\QueryString
:
$query = $url->getQuery();
有关对象可见性的更多信息,请参阅 official docs。
我正在使用 Rackspace API 开发 PHP,这是我在这里使用的:
$file->setContent(fopen('sites/default/files/rackspace/' . $end_element, 'r+'));
$cdnUrl = $file->getPublicUrl();
print_r($cdnUrl);
它返回了下面提到的结构。
Guzzle\Http\Url Object
(
[scheme:protected] => http
[host:protected] => something.r2.cf3.rackcdn.com
[port:protected] =>
[username:protected] =>
[password:protected] =>
[path:protected] => /something-abc.jpg
[fragment:protected] =>
[query:protected] => Guzzle\Http\QueryString Object
(
[fieldSeparator:protected] => &
[valueSeparator:protected] => =
[urlEncode:protected] => RFC 3986
[aggregator:protected] =>
[data:protected] => Array
(
)
)
)
我这里需要的是这样的:
Guzzle\Http\Url Object
(
[scheme] => http
[host] => something.r2.cf3.rackcdn.com
[port] =>
[username] =>
[password] =>
[path] => /something-abc.jpg
[fragment] =>
[query] => Guzzle\Http\QueryString Object
(
[fieldSeparator] => &
[valueSeparator] => =
[urlEncode] => RFC 3986
[aggregator] =>
[data] => Array
(
)
)
)
这样至少我可以使用那些对象,有什么建议吗?
它是一个 Guzzle\Http\Url
对象,您将无法访问其受保护或私有的属性。 class 是 defined here,因此您可以使用任何 public 方法来访问其状态。
您也可以像这样将其转换为字符串:
$stringUrl = (string) $url;
或访问其他内容:
$host = $url->getHost(); // something.r2.cf3.rackcdn.com
$scheme = $url->getScheme(); // http
$port = $url->getPort();
$path = $url->getPath(); // something-abc.jpg
查询由另一个对象表示,Guzzle\Http\QueryString
:
$query = $url->getQuery();
有关对象可见性的更多信息,请参阅 official docs。