有没有办法自动拥有一个Guzzle服务描述符字段,取一个数组,并将它解析为逗号列表?
数据
Array [ "test", "another test" ]
服务描述符
{
"name": "YouTube",
"baseUrl": "https://www.googleapis.com",
"apiVersion": "v3",
"description": "YouTube GData Graph API",
"operations": {
"GetVideos": {
"httpMethod": "GET",
"uri": "/youtube/v3/videos",
"parameters": {
"id": {
"type":"array",
"location":"query",
"required": true
},
"part": {
"location": "query",
"default": "snippet"
},
"key": {
"location": "query",
"default": "{MY KEY}",
"static": true
},
"maxResults": {
"location": "query",
"default": 50
}
}
}
}
}
该字段是id
下的parameters
,我想提供原始的php字符串数组,并让Guzzle自动将其转换为逗号分隔列表
现在,我必须这样做:
$command = $this->client->getCommand('GetVideos', [
'id' => implode(",", array_slice($this->id, 0, 50))
]);
现在,它会创建一个包含多个id
实例的网址 https://www.googleapis.com/youtube/v3/videos?id=test&id=another%20test&part=snippet&key={MY KEY}&maxResults=50
我希望它像:
https://www.googleapis.com/youtube/v3/videos?id=test,another%20test&part=snippet&key={MY KEY}&maxResults=50
这可能吗?
答案 0 :(得分:0)
Guzzle 3从Query
对象构造查询字符串,该对象具有聚合器。通过调用->setAggregator($aggregator)
上的Query
,您可以覆盖默认行为。你想给它一个Guzzle\Http\QueryAggregator\CommaAggregator
的实例。
关于它的Guzzle文档中没有太多内容,但有a brief mention。