laravel 5:在哪里定义全球Vars?

时间:2015-04-08 14:48:27

标签: php constants laravel-5

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

在Laravel 5中使用define vars的最佳做法是什么?

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

2 个答案:

答案 0 :(得分:10)

我只想提高@ Adam的答案。假设一个在线购物车。然后,您希望全局var存储currency symbol以便在视图中显示。由于此值可以随时更改,因此您可以在App\Providers\ConfigServiceProvider指定它,如下所示:

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

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

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

如果你明确想要使用constanst(值永远不会改变),你可以考虑在配置文件direclty中设置值如下:

# create a new config file config/customs.php 

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

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

答案 1 :(得分:0)

取决于您尝试存储的变量类型。如果它们与模型相关,则应将它们存储在模型中,如果它们与环境相关,则应将它们存储在.env中。你试图存储什么样的变量?