【问题标题】:Custom config file access within Laravel 5 config filesLaravel 5 配置文件中的自定义配置文件访问
【发布时间】:2015-05-10 13:32:44
【问题描述】:

我在 Laravel 5 中创建了自定义配置文件,并尝试通过调用 config('myconfigfile.value') 在其他文件(session.phpcache.php)中使用它的设置,但没有返回任何值我的配置。似乎配置文件具有预定义的加载顺序,并且自定义配置最终加载或由于其他原因未初始化。

如何从 laravel 配置文件访问我的设置?

【问题讨论】:

    标签: php laravel config laravel-5


    【解决方案1】:

    首先你需要在配置文件夹中添加文件,例如:laravel\config\Test.php

    <?php
    use Illuminate\Support\Facades\Config;
    
    
    return [
    
        'name' => 'Ali Mohammed',
        'age' => 26
    
    ];
    

    那么你需要调用配置

    get('test', function(){
    
       return  Config::get('Test.name');
    
    });
    

    【讨论】:

    • 除了标准的 laravel 配置文件之外,我可以在应用程序的任何部分从我的自定义配置中获取设置。尝试从'config/cache.php' 访问您的'Test.name'
    • 真的很抱歉误解了我不确定的问题,但我认为您不能像您所说的那样在另一个配置文件中调用配置似乎配置文件具有预定义的加载顺序。
    【解决方案2】:

    为什么不在您需要的每个配置文件中使用 env() 帮助程序?

    您只需在 .env 文件中设置值

    CUSTOM_SETTING="some value"
    

    并在每个配置文件中获取它

    <?php
    return [
        // ...
        'custom_value' => env('CUSTOM_SETTING', 'some default value'),
        // ...
    ];
    

    看看helper code

    【讨论】:

    • 配置文件是存储应用程序设置的主要位置,.env 文件用于在必要时更正一些设置。应用程序应该可以在没有任何.env 文件的情况下正常工作。为了保证应用程序在没有.env 文件的情况下使用您的方法工作,我应该在配置中编辑'some default value' 的每个出现,而不是只编辑config/custom-config.php。是的,这并不难,但我认为这不是最好的方法。
    • 要达到你想要的,我知道没有其他方法。另外,将配置文件中的值分配给不同的配置文件值有什么意义?你说我的建议不是最好的方法,但你问的完全是多余的!愿意解释你想要什么背后的原因是什么?否则,我建议的是您可能会得到的最正确的方法。
    • 不,这对我来说不是多余的 :) 例如,我在自定义配置中有应用程序名称值,我想根据该值生成会话文件名或缓存前缀。
    • 如果应用程序名称一直在变化,你不妨使用.env 文件,在这种情况下你只需执行'files' =&gt; storage_path().'/framework/sessions/'.env('APP_NAME'), 之类的操作。如果应用程序名称不会更改,则直接传递值:'files' =&gt; storage_path().'/framework/sessions/app_name',
    【解决方案3】:

    我们还应该检查缓存中是否添加了自定义配置文件。

    php artisan config:cache
    

    查看link

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-26
      • 1970-01-01
      • 2012-01-11
      • 1970-01-01
      • 2016-05-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多