Symfony2可以通過從其他服務注入數據來配置服務嗎?例如,通過在另一個服務上調用getter?symfony2使用來自其他服務的數據配置服務
在我的具體情況下,我創建了一個可以處理可翻譯實體字段的(可重用)服務。爲此,我需要應用程序中可用語言環境的列表。我已經看過一些其他可以與語言環境一起工作的包,但它們總是使用來自配置的靜態數組。例如:
a2lix_translation_form:
locales: [en, fr, nl]
此配置通常以配置參數或setter的形式通過bundle配置映射到服務。例如:
class SomeService {
function __construct(array $locales) { ... }
// or
function setLocales(array $locales) { ... }
}
但在我的情況下,可用語言環境列表並不總是靜態的,通常來自數據庫。我在我的應用程序中使用返回數組的方法getLocales
創建了一個Locale
服務。但是,如何將該陣列放入需要它的服務中?
我正在創建的服務需要一個語言環境列表被拆分爲一個單獨的可重用包。我不想直接注入Locale
服務,因爲該服務特定於應用程序,而不是我創建的包。我希望我的包的用戶能夠提供一個靜態的區域設置列表,或指向具有所有區域設置的服務。