有没有办法将参数从SESSION或其他来源传递给服务? 我的捆绑配置中有类似的东西:
<service id="class" class="MyClass">
<argument key="lang">%class.lang%</argument>
</service>
我知道可以通过从DependencyInjection中的Extension传递参数来完成,但是我不确定这个变量的来源,它可能是会话但在某些情况下它可以从数据库中读取。我只是不想在DependencyInjection中硬编码该参数应该从会话传递。
我也知道我可以从app配置中传递参数但是在应用程序中执行某些操作后是否有任何方法可以更改它?
答案 0 :(得分:5)
如果该参数未通过配置修复(即,如果它取决于某些应用程序逻辑),我会将其放在特定的类中,将该类注册为特定服务(注入所有需要的服务以确定您感兴趣的值) )然后在需要该值的地方注入特定服务。