Symfony DI调用静态方法

时间:2016-12-19 16:26:41

标签: symfony dependency-injection

我使用此库https://github.com/smsapi/smsapi-php-client从网站发送短信。但是当我尝试在服务中处理基类时,我遇到了问题。所以我的问题是有方法用参数调用静态方法吗?我试着通过工厂这样做,但这对我不起作用。这是我的代码:

smsapi.client:
   class: SMSApi\Client
   factory: ['SMSApi\Client', createFromToken]
   properties:
       attributes: '%smsapi_token%'

但我得到以下错误:

Warning: Missing argument 1 for SMSApi\Client::createFromToken(), called in ../cache/dev/appDevDebugProjectContainer.php on line 5073 and defined

1 个答案:

答案 0 :(得分:4)

如文档中所述:Passing Arguments to the Factory Method

  

您可以使用服务容器中的arguments选项。

例如:

smsapi.client:
   class: SMSApi\Client
   factory: ['SMSApi\Client', createFromToken]
   arguments:
       attributes: '%smsapi_token%'

希望这个帮助

PS:请分享你正在使用的库的回购或源代码的主要部分,以便处理这种情况。