如何在运行时将参数传递给工厂服务?

时间:2014-12-18 11:42:42

标签: symfony

目前我正在我的一项服务中实例化第三方课程:

$message = new ChatMessage($apiKey);
$message->setFrom($fromUser);
$message->setBody($messageText);
$message->etc ...

我想将其变成一项服务。 apiKey在运行时根据消息的发送位置确定,因此我需要能够在运行时设置它。我已经为服务创建了这个配置:

class ChatMessageFactory
{
    function createChatMessage($apiKey) {
        return new ChatMessage($apiKey);
    }
}

services.yml:-
services:
    chatmessage_manager:
        class: ChatMessage
        factory: [ChatMessageFactory, createChatMessage]
        arguments: ["%flow.apiKey%"]

但是如何将我的参数传递给createChatMessage?不知道什么时候创建容器?

1 个答案:

答案 0 :(得分:-3)