Symfony服务:有没有办法在`services.yml`中设置公共属性?

emf*_*mfi 0 dependency-injection browscap symfony

有没有办法通过服务定义来设置公共变量 services.yml

原因是,我正在使用phpbrowscap库.要使用本地文件解析浏览器,我需要使用以下代码行:

$this->browscap->localFile = "..."
Run Code Online (Sandbox Code Playgroud)

不幸的是,这个贫穷的财产是公共的,没有一个二传手.它在构造函数中既不可用.

那我怎么设置这个属性services.yml?是否有可能实现?

这是我的一部分services.yml:

browscap:
        class: Browscap
        arguments:
            - %browscap_cache_dir%
Run Code Online (Sandbox Code Playgroud)

如果有一个二传手,我会加上call......但是......

Joe*_*Joe 5

您是否尝试过使用property injectionDI-Container 的方法?

https://symfony.com/doc/current/service_container/injection_types.html#property-injection

app.newsletter_manager:
     class: AppBundle\Mail\NewsletterManager
     properties:
         mailer: '@mailer'
Run Code Online (Sandbox Code Playgroud)