如何选择将记录器传递给Symfony Bundle

时间:2016-10-15 11:04:53

标签: symfony logging

我想让最终开发人员可以选择将logger传递给我正在开发的软件包。

如何选择这个?

目前,我已在Resources/config/services.xml中设置配置,如下所示:

    <service id="stripe_bundle.manager.stripe_api" class="SerendipityHQ\Bundle\StripeBundle\Service\StripeManager">
        <argument>%stripe_bundle.stripe.secret_key%</argument>
        <argument>%stripe_bundle.kernel_environment%</argument>
        <argument type="service" id="logger" />
        <argument type="service" id="stripe_bundle.syncer.charge" />
        <argument type="service" id="stripe_bundle.syncer.customer" />
        <argument type="service" id="stripe_bundle.syncer.webhook_event" />
    </service>

正如你所看到的,我已经设置了一个很难的&#34;依赖于标识为logger的服务。但是可能会发生这种服务不存在,或者它有另一个名称。

如何让开发人员设置此依赖项?

1 个答案:

答案 0 :(得分:0)

尝试使用:

<argument type="service" id="logger" on-invalid="null" />

文档:

http://symfony.com/doc/current/service_container/optional_dependencies.html