我想將一個YAML配置注入Symfony中的服務。目前,我注入了我的包的路徑以及文件的相對路徑,並用Yaml::parse
來手動解析它,但是有沒有更簡單的方法來完成此操作?
所以目標是服務的構造函數會接收已經解析過的YAML配置數組。是否可以將YAML文件注入Symfony中的服務?
把一些更詳細的瞭解吧:
目前,我有一個Resources
目錄YAML文件在我的包,並在服務解析它,我用的是這樣的:
$yamlFile = sprintf(
'%s/%s',
$container->get('kernel')->getBundle('MyBundle')->getPath(),
$pathToFile
);
所以我必須注入容器(可以以某種方式注入包的路徑?)和文件的路徑。我不介意稍微重構我的系統,例如把yaml文件放在bundle的config目錄下,如果這樣做會有所幫助,但我想保持它與其他配置分開。
作爲一種替代方案,我可以考慮創建一個特殊的服務,我可以使用這些參數進行注入,並讓它負責解析,然後從中解析出數據。但是這似乎是Symfony中可能已經解決的一項任務。 – Czechnology
我沒有看到配置文件的確切要求,但如果您不介意使用與位於app/config中的常規配置文件相同的格式,則不會在應用程序/配置中添加足夠的額外資源,即使在你想從服務中調用它? 進口: - {資源: '%kernel.root_dir%/ parameters.yml'} http://symfony.com/doc/current/cookbook/configuration/configuration_organization.html –
@ScalatronMotoroller我明白我可以創建另一個配置文件並像那樣導入它,但由於它只與一個bundle的一部分相關,所以將它與項目的根連接似乎不正確。順便說一句,你發佈的例子來自一個部分,他們表明它不像這樣動態工作。 – Czechnology