在Symfony 3.4应用程序中定义服务定义参数的正确方法是什么?



在Symfony 3.4应用程序中定义服务定义参数的正确方法是什么?

我注意到以下所有内容都是有效的:

AppBundleServicesRFCSpackman:
arguments:
$watpSdk: '@watp.client'
calls:
- [setPlayerName, ['%p_name%']]
AppBundleServicesRFCGordon:
$client: '@crmpicco.client'
zendesk.client:
class: ZendeskAPIHttpClient
arguments:
- '%zendesk_subdomain%'

官方文档是这样说的,但我不确定正确的标准是什么:

版本 3.3 中的新功能:能够按参数名称配置参数 ($adminEmail(被添加到Symfony 3.3中。以前,您可以 仅通过其索引(在本例中为 2(或使用空配置它 其他参数的引号。

  • 当您使用连字符时,它会将参数提供给 服务的构造函数/工厂。
  • 当您使用"$argname"时,它 根据构造函数/工厂的名称提供参数 参数。
  • 您还可以使用"index_#"来输入参数 具体指标。

它们中的任何一个都是正确的方法。我更喜欢使用连字符,因为如果有一天重构参数的名称,也不必在配置中重构它。

当我需要扩展服务定义并替换父服务中定义的参数之一时,我也使用"index_#"。

这是一个品味问题,因为服务扩展可以完全忽略。

最新更新