我想让最终开发人员可以选择将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
的服务。但是可能会发生这种服务不存在,或者它有另一个名称。
如何让开发人员设置此依赖项?
答案 0 :(得分:0)
尝试使用:
<argument type="service" id="logger" on-invalid="null" />
文档:
http://symfony.com/doc/current/service_container/optional_dependencies.html