我正在学习OOP PHP,并且正在使用Guzzle进行API调用,并希望从响应中定义的类(Coverage)创建一个对象。
我的Guzzle请求看起来像
$client = new GuzzleHttp\Client(['base_uri' => 'http://www.example.com']);
$response = $client->request('GET', '?key=value&key=value');
$array = json_decode($response->getBody()->getContents(), true);
然后我实例化一个新的Coverage对象,如
$coverage = new Coverage($array);
我的班级看起来像
class Coverage {
private $postcode;
private $headline;
function __construct(array $array)
{
$this->setPostcode($array['locationValue']);
}
使用私有变量的getter和setter。正如您所看到的,我正在传递json_decoded Guzzle响应 到Coverage构造函数,但我希望能够将Guzzle响应对象本身传递给 覆盖构造函数,例如
function __construct(GuzzleHttp\Psr7\Response $response)
或
function __construct(GuzzleHttp\Client $response)
我的问题是: 1)我是否有权在Coverage构造函数中键入一个Guzzle类,而不是只使用一般 数组是由Guzzle的getContents方法的json_decode产生的?
2)如果我这样做是正确的,我应该在Coverage构造函数中使用Guzzle类吗?
非常感谢您的帮助!
编辑:@Shaun Bramley的评论为我完美排序了这一点!