我正在开发一个Laravel包,但我无法从服务提供商的register()
方法中读取配置文件。
如果我尝试\Config::get("package::file.option")
我就会失效,
如果我尝试\Config::get("package::file")
,我会得到一个空数组。
尽管如此,我可以从boot()
方法中阅读它们。
以下是package()
方法和我的文件夹结构中的boot()
调用:
// package() call:
$this->package('cerbero/login');
// package directory structure:
/workbench
/cerbero
/login
/src
/Cerbero
/Login
LoginServiceProvider.php
...
/config
main.php
oauth.php
redis.php
答案 0 :(得分:5)
我无法直接从register()
读取配置文件,因为$this->app['config']
由其他服务提供商提供。
相反,当我调用绑定方法时,我必须传递一个$app
实例。
例如,这有效:
$this->app->bind('Something', function($app) {
$config = $app['config']->get('package::file.option');
return new Something($config);
});