Symfony2 中是否可以通过从另一个服务注入数据来配置服务?例如,通过调用另一个服务的 getter?
在我的具体情况下,我正在创建一个可以处理可翻译实体字段的(可重用)服务。为此,我需要应用程序中可用语言环境的列表。我查看了其他一些也适用于语言环境的捆绑包,但它们总是使用配置中的静态数组。例如:
a2lix_translation_form:
locales: [en, fr, nl]
此配置通常最终通过捆绑配置以构造函数参数或设置器的形式映射到服务。例如:
class SomeService {
function __construct(array $locales) { ... }
// or
function setLocales(array $locales) { ... }
}
但就我而言,可用语言环境的列表并不总是静态的,而且通常来自数据库。我在我的应用程序中使用返回数组Locale
的方法创建了一个服务。getLocales
但是如何将该数组放入需要它的服务中呢?
我正在创建的需要语言环境列表的服务被拆分为一个单独的可重用包。我不想Locale
直接注入服务,因为该服务特定于应用程序,而不是我正在创建的包。我希望我的捆绑包的用户能够提供静态的语言环境列表,或者指向具有所有语言环境的服务。