2013-09-28 144 views
3

我正在開發Laravel軟件包,但我無法從我的服務提供商的register()方法中讀取我的配置文件。Laravel:無法讀取配置文件

如果我嘗試\Config::get("package::file.option")我得到空,
如果我嘗試\Config::get("package::file")我得到一個空數組。

儘管如此,我可以從boot()方法讀取它們!

以下是我的boot()方法中調用package()和我的文件夾結構:

// package() call: 
$this->package('cerbero/login'); 

// package directory structure: 
/workbench 
    /cerbero 
     /login 
      /src 
       /Cerbero 
        /Login 
         LoginServiceProvider.php 
         ... 
       /config 
        main.php 
        oauth.php 
        redis.php 

回答

5

我可以,因爲$this->app['config']被另一服務供應商提供不直接從register()讀取配置文件。
當我調用綁定方法時,我必須通過$app實例。

例如,這個工程:

$this->app->bind('Something', function($app) { 
    $config = $app['config']->get('package::file.option'); 
    return new Something($config); 
}); 
+1

我想一個好辦法,看看是否您的服務提供商功能正確,沒有衝突是將其添加爲服務提供商數組中的第一個項目。 :) – Franz

+0

關於這個答案需要注意的一件事是,每當你得到它時你都會有不同的東西。在某些情況下,您可能希望擁有相同的對象,因此需要相應地更改您的邏輯。 –