guzzle - 将额外参数传递给八点/guzzle 客户端类(Symfony 4)
问题描述
在 Symfony 4 项目中,我使用eightpoints/guzzle
bundle 来调用远程 API。安装捆绑包(并在单独的 yaml 文件中配置客户端)后,我按照此教程使我的客户端自动装配,效果很好。然后扩展了我的客户端类(即从 的类下降的类GuzzleHttp\Client
,相当于ApiPaymentClient
上述指南中的类),其中包含一些处理我需要的调用的更高级别的方法,这也很有效。
问题是:有没有办法让我的客户端类接受额外的参数?具体来说,我想在parameters
my 部分定义一个参数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
?到目前为止,我已经管理了一项或另一项工作,但不是两者都进行(即,使绑定工作使客户端定义eight_points_guzzle.yaml
不被读取,反之亦然。)
底线:是的,我可以在 MyClient 类中将参数定义为类 const,但我不喜欢这种解决方案;更不用说我有一天会需要传递一个服务的情况,而不仅仅是一个简单的变量。
解决方案
推荐阅读
- javascript - 如何使用可能具有嵌套对象的现有对象的一部分创建新对象
- spring-cloud-contract - 为什么 Spring Cloud Contract stub runner 有本地和远程属性?
- android - 使用 REST API 从 Firebase 检索数据
- amazon-web-services - 如何访问部署在 EC2 中的 Windows 实例中的网站?
- angular - Angular,Modal 正在插入重复项
- python - 如何修复损失:Python 中 Keras 的 nan?
- mysql - 查找自上次导出以来为每个设备添加的应用程序列表
- reactjs - 材质 ui 选择器,如何防止在重绘时关闭
- javascript - 无法将文本框值存储在变量中
- r - 使用 ggplot2 对轴文本进行条件格式设置