将额外的参数传递给Augustpoints / guzzle Client类(Symfony 4)

时间:2018-11-22 12:44:49

标签: guzzle symfony4

在Symfony 4项目中,我利用eightpoints/guzzle捆绑软件对远程API进行了调用。安装捆绑软件(并在单独的yaml文件中配置客户端)后,我按照this quide进行了自动接线,这使客户端可以正常工作。然后使用一些更高级的方法来扩展我的客户端类(即,该类来自GuzzleHttp\Client的类,与上述指南中的ApiPaymentClient类等效),该类可以处理我需要的调用,也很棒。

问题是:有没有办法让我的客户舱接受额外的参数?具体来说,我想在parameters的{​​{1}}部分中定义一个参数,然后将其绑定到客户端类构造函数中的特定附加参数(该参数随后将参数值存储在私有变量中)方法中使用的变量),即

services.yaml

class MyClient extends GuzzleHttp\Client { public function __construct($config, $apiKey) { parent::__construct($config); $this->apiKey = $apiKey; } /*...*/ } 中客户服务的定义最初(即上述指南的结果)如下:

services.yaml

确保App\Client\MyClient: '@eight_points_guzzle.client.my_client' 获得

中定义的配置
MyClient

部分位于单独的捆绑包配置文件(eight_points_guzzle: clients: my_client: )中。

如何更改eight_points_guzzle.yaml服务定义以接受额外的参数并仍然从App\Client\MyClient获取配置?到目前为止,我已经管理了一项或另一项工作,但没有两项都完成(即,进行绑定工作将无法读取eight_points_guzzle.yaml中的客户端定义,反之亦然。)

最底线:是的,我可以在MyClient类中将参数定义为类const,但是我不喜欢这种解决方案。更不用说这种情况了,我一天将需要通过一项服务,而不仅仅是一个简单的变量。

0 个答案:

没有答案