我试图在我的包中提供配置文件的潜在位置:.config.yml
目前,我已经在我的一个类中加载了一个具有一些典型位置的数组:
protected $configDirectories = [
'./',
'./config',
'./app/config',
'./config',
'./vendor/name/packagename/config'
];
问题是;我的包被加载到./vendor/name/packagename
,当然,./
不知道如何到达项目根目录。
目的是允许这个包的用户将.config.yml
放到任何预先指定的目录中,并且它应该被拾取。我怎样才能做到这一点呢?
我也遇到过类似的情况。在我的例子中,前端控制器是在./
中。因此,我要求我的包的用户执行如下操作:
WonderfulPackageInit::setRootDirectory(__DIR__);
(但我最终决定,而不是有神奇的搜索顺序发生在掩护下,以找到配置文件,我最终有一个(或多个)配置文件明确指定(可以在任何地方与任何名称)…
WonderfulPackageInit::loadConfigFile(__DIR__.'/config.yml');
WonderfulPackageInit::loadConfigFile(__DIR__.'/config.DEV-overrides.yml');
如果你想让用户能够配置你的bundle,你必须通过语义配置来完成,而不是通过一个指定的和自己的配置文件。按Symfony的方式做