首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 5环境配置阵列?

Laravel 5环境配置阵列?
EN

Stack Overflow用户
提问于 2016-06-21 05:22:45
回答 2查看 25.5K关注 0票数 17

在Laravel 4中,您可以设置基于环境的配置文件夹结构:

代码语言:javascript
复制
/config/app.php
/config/dev/app.php
/config/staging/app.php
/config/testing/app.php

你能用Laravel 5做到这一点吗?我理解.env的概念,并用它来定义我所处的环境。但是我需要定义一个任意长度的数组的配置值,而.env文件不能做到这一点。

下面是我想要实现的一个例子:

代码语言:javascript
复制
if (in_array($request->input('value'), config('app.valid_values')) {
  // do something
}

这个valid_values只是一个值的数组。它的长度是任意的,所以您不能只在.env文件中设置它们,如下所示:

代码语言:javascript
复制
VALID_VALUE1=...
VALID_VALUE2=...
etc.

并且每个环境的阵列都需要不同。

在Laravel 4中,使用环境配置文件夹很容易做到这一点。但是如何使用Laravel 5做到这一点呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-21 05:36:20

如果您需要在值上创建数组,您可以创建on string格式,并在需要时对其进行解析

代码语言:javascript
复制
MY_ARRAY_VALUE=1,2,house,cat,34234

当你需要它们的时候

代码语言:javascript
复制
$myArrayValue  = explode(',', env('MY_ARRAY_VALUE'));

或者将您的值保存在JSON中并使用json_decode()获取它们

代码语言:javascript
复制
$myArrayValue  = json_decode(env('MY_ARRAY_VALUE'), true);

额外信息:

在Larave5上,您需要在一个.env文件中转换所有的配置文件。

在每个环境中,您的.env文件将与该环境的值不同。

要设置环境,需要在.env文件中更改APP_ENV的值

代码语言:javascript
复制
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。否则,您应该手动重命名该文件。

票数 41
EN

Stack Overflow用户

发布于 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文件中获取数据。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37932031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档