laravel 5: 在哪里定义全局变量?

laravel 5: Where define global Vars?

在旧的 laravel 4 代码中,我们使用 constants.php 来定义全局变量。

在 Laravel 5 中使用定义变量的最佳做法是什么?

我们不会将其存储在 .env 文件或 routes.php

取决于您要存储的变量类型。如果它们与模型相关,则应存储在模型中,如果它们与环境相关,则应存储在 .env 中。您要存储哪种变量?

我只是想改进一下@Adam 的回答。假设有一个在线购物车。然后,您需要一个全局变量来存储 currency symbol 以便在视图中显示。因为这个值可以随时更改,所以您可以在 App\Providers\ConfigServiceProvider 处指定它,如下所示:

public function register()
{
    $currency = 'whatever you want';

    config([
        'currency' => $currency
    ]);
}

$currency = config('currency') var 是全局变量,可用于整个应用程序,即使请求尚未到达控制器(您可以阅读有关 middleware classes 的更多信息)。

如果您确定要使用 constanst(值永远不会改变),您可以考虑直接在配置文件中设置值,如下所示:

# create a new config file config/customs.php 

# like content, you could start with:
return  [
    'currency' => '$'
];

最后,您使用 config('customs.currency') 在您的应用中获取值。