从编写器包中查找项目根目录



我试图在我的包中提供配置文件的潜在位置:.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的方式做

相关内容

  • 没有找到相关文章

最新更新