在Laravel 4中,您可以设置基于环境的配置文件夹结构:
/config/app.php
/config/dev/app.php
/config/staging/app.php
/config/testing/app.php
Run Code Online (Sandbox Code Playgroud)
你能用Laravel 5做到这一点吗?我理解这个.env概念,我正在用它来定义我所处的环境.但是我需要定义一个配置值,它是一个任意长度的数组,你不能用.env文件来做.
我正在努力实现的一个例子:
if (in_array($request->input('value'), config('app.valid_values')) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
这valid_values只是一个值数组.它是任意长度的,所以你不能只在你的.env文件中设置它们,如:
VALID_VALUE1=...
VALID_VALUE2=...
etc.
Run Code Online (Sandbox Code Playgroud)
并且每个环境的数组需要不同.
使用环境配置文件夹在Laravel 4中很容易做到这一点.但是你如何用Laravel 5做到这一点?
San*_*r82 17
如果需要在值上创建数组,可以使用字符串格式创建,并在需要时可以解析它们
MY_ARRAY_VALUE=1,2,house,cat,34234
Run Code Online (Sandbox Code Playgroud)
当你需要它们时
$myArrayValue = explode(',', env('MY_ARRAY_VALUE'));
Run Code Online (Sandbox Code Playgroud)
或者将您的值保存在JSON中并使用它们 json_decode()
$myArrayValue = json_decode(env('MY_ARRAY_VALUE'), true);
Run Code Online (Sandbox Code Playgroud)
额外信息:
在Laravel 5上,您需要将所有配置文件翻译成一个.env文件.
在每个环境中,您的.env文件将与此环境的值不同.
要设置你的环境,你需要改变的价值APP_ENV在你的.env文件
APP_ENV=local
Run Code Online (Sandbox Code Playgroud)
您可以在该文件中创建自己的变量
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.否则,您应该手动重命名该文件.
Phpdotenv 用于在环境中存储值,而不是通用配置库。环境是 UNIX 概念,值始终被解释为字符串。即使转换为不同的数据类型(例如数组或布尔值)很方便,也会超出此类的范围。
Laravel 的配置系统已经是分离的。phpdotenv 负责环境,laravel 负责配置。一旦配置完成,环境将被忽略。将环境变量从字符串解析为传递给 Laravel 的内容(天气是它们的 env 函数,或者在配置文件中爆炸)的问题。
换句话说,使用 Config::get() 获取具有所需结构的特定 conf 文件,您就拥有了所需的内容。
根据 Laravel 指南,当 env() 位于 config 文件夹之外时,您不应该直接在代码中使用 env() 。使用 config() 是一个很好的做法。在配置文件中使用 env() 从 .env 文件获取数据。
| 归档时间: |
|
| 查看次数: |
9487 次 |
| 最近记录: |