在Laravel 4中,您可以设置基于环境的配置文件夹结构:
/config/app.php
/config/dev/app.php
/config/staging/app.php
/config/testing/app.php你能用Laravel 5做到这一点吗?我理解.env的概念,并用它来定义我所处的环境。但是我需要定义一个任意长度的数组的配置值,而.env文件不能做到这一点。
下面是我想要实现的一个例子:
if (in_array($request->input('value'), config('app.valid_values')) {
// do something
}这个valid_values只是一个值的数组。它的长度是任意的,所以您不能只在.env文件中设置它们,如下所示:
VALID_VALUE1=...
VALID_VALUE2=...
etc.并且每个环境的阵列都需要不同。
在Laravel 4中,使用环境配置文件夹很容易做到这一点。但是如何使用Laravel 5做到这一点呢?
发布于 2016-06-21 05:36:20
如果您需要在值上创建数组,您可以创建on string格式,并在需要时对其进行解析
MY_ARRAY_VALUE=1,2,house,cat,34234当你需要它们的时候
$myArrayValue = explode(',', env('MY_ARRAY_VALUE'));或者将您的值保存在JSON中并使用json_decode()获取它们
$myArrayValue = json_decode(env('MY_ARRAY_VALUE'), true);额外信息:
在Larave5上,您需要在一个.env文件中转换所有的配置文件。
在每个环境中,您的.env文件将与该环境的值不同。
要设置环境,需要在.env文件中更改APP_ENV的值
APP_ENV=local您可以在该文件中创建自己的变量
https://laravel.com/docs/5.2/configuration#environment-configuration
这是Laravel 5.0 https://laravel.com/docs/5.2/releases#laravel-5.0升级指南的摘录
取代了各种令人困惑的嵌套环境配置目录,Laravel 5现在利用了Vance Lucas的DotEnv。这个库提供了一种非常简单的方法来管理您的环境配置,并且使Laravel 5中的环境检测变得轻而易举。有关更多详细信息,请查看完整的配置文档。
您可以在以下位置找到默认的.env文件:https://github.com/laravel/laravel/blob/master/.env.example
根据应用程序运行的环境,使用不同的配置值通常很有帮助。例如,您可能希望在本地使用与在生产服务器上不同的缓存驱动程序。它很容易使用基于环境的配置。
为了方便起见,Laravel使用了Vance Lucas提供的DotEnv PHP库。在全新的Laravel安装中,应用程序的根目录将包含一个.env.example文件。如果您通过Composer安装Laravel,此文件将自动重命名为.env。否则,您应该手动重命名该文件。
发布于 2019-09-12 16:31:39
一般用于Phpdotenv
Phpdotenv是关于在环境中存储值,而不是通用配置库。环境是UNIX概念,并且值始终被解释为字符串。转换为不同的数据类型,比如数组或布尔值,尽管很方便,但不在这个类的范围之内。
Laravel配置系统
Laravel的配置系统已经分离。phpdotenv做环境,laravel做配置。一旦配置完成,环境就会被忽略。将环境变量从字符串解析为传递给laravel的内容(天气是它们的env函数,或者在配置文件中爆炸)。
良好的实践
换句话说,使用Config:: get ()来获得具有所需结构的特定conf文件,您就拥有了所需的内容。
根据Laravel准则,当env()位于config文件夹之外时,您不应该在代码中直接使用env()。使用config()是一个很好的实践。在配置文件中,使用env()从.env文件中获取数据。
https://stackoverflow.com/questions/37932031
复制相似问题