转载地址  http://www.cnblogs.com/Eden-cola/p/DotEnv-in-lumen.html

umen 是 laravel 的衍生品,核心功能的使用和 laravel 都是一致的,但配置文件这一方面,lumen 在 laravel 的基础上增加了更简便的配置方式;
lumen 采用了 DotEnv 来读取 .env 文件,并将其作为默认的配置方式;
.env 在简化配置的同时,自然也不会有 .php 配置文件那么自由,我初期没有找到完善的中文资料,踩了一些坑后,决定自己整理整理

.env 配置文件适用范围

.env 文件主要的作用是存储环境变量,也就是会随着环境变化的东西,比如数据库的用户名、密码、缓存驱动、时区,还有静态文件的存储路径之类的;
因为这些信息应该是和环境绑定的,不应该随代码的更新而变化,所以一般不会把 .env 文件放到版本控制中;

除了和环境绑定的环境变量,有时候一些安全系数比较高,不希望纳入版本控制的信息也会放进 .env 文件,比如第三方API的secret之类的;

不太适用的内容

严格来说,传统的配置信息,比如上传文件的尺寸限制,或者一些算法的阈值之类的,其实不适合放到 .env 文件中,因为这些配置项是要和代码一同更新,且所有环境下应该都是一致的;
所以这些配置项还是放到可以被版本控制工具管理的配置文件中更合适——说是这么说……但我们在使用 lumen 的时候也经常把这些配置项放进 .env (这大概不是什么好习惯),毕竟如果这些配置项很少的话,单独建一个配置文件也有些不值的感觉……

.env 中的基本语法

说是语法……但真的很简单就是了

.env 中的数据按行划分, 每条数据占一行,数据之间可以有任意多的空行
每条数据的核心是一个等号,等号左侧是 key,右侧是 value

KEY1=value1
KEY2=value2 KEY3=value3
KEY4=value4

在 key 的前后和 value 的前后都可以添加任意多的空格,读取时会自动去除前后空格
比如有这样一条配置项:

   KEY   =    value

在PHP中读取的时候,就会自动去除空格

echo env('KEY') === 'value'; //true

如果 key 或者 value 中包含空格,就需要在两端加上双引号,比如这样:

"TEST KEY" = "test value"

如果需要添加注释,可以使用#,比如这样:

#测试单行注释
KEY=value #测试行末注释

如果需要嵌套变量的话,也可以直接在 .env 中写, 借用官方的例子:

BASE_DIR="/var/webroot/project-root"
CACHE_DIR="${BASE_DIR}/cache"
TMP_DIR="${BASE_DIR}/tmp"

.env 可以存储的内容

前文说了,.env 是非常简单的配置文件,简单到什么程度呢?
它只支持一维K/V格式的配置项,而且 key 和 value 都只能是字符串。

那如果想存一个列表怎么办?

有的时候我们需要在配置文件里存一个列表,比如支付平台调用 webhook 的时候只会从固定的IP地址发起,那我们可能就会为了安全性,把这些IP地址放到一个白名单中,每次验证一下来源IP是否在名单列表之内;
像这种白名单列表有办法存到 .env 中么?
只能说……不能直接存进去,因为 .env 很简单,它的 value 只能是字符串,不过我们可以尝试变通一下,使用一个连接符(比如半角逗号,)把白名单地址拼成一个字符串,使用时再分割开:

WHITE_LIST=192.168.0.1,192.168.0.2,192.168.0.3

laravel .env 文件的使用的更多相关文章

  1. 关于Lumen / Laravel .env 文件中的环境变量是如何生效的

    .env 文件包含默认环境变量,我们还可自定义其他任何有效的变量,并可通过  调用 env() 或 $_SERVER 或 $_ENV  来获取该变量.那么env()是如何加载到这些变量的呢?在Lume ...

  2. laravel .env文件的使用

    umen 是 laravel 的衍生品,核心功能的使用和 laravel 都是一致的,但配置文件这一方面,lumen 在 laravel 的基础上增加了更简便的配置方式:lumen 采用了 DotEn ...

  3. 保护Laravel .env文件,防止直接访问

    web服务器: Apache 服务器系统: Ubuntu 14.04 如果不是vhost的形式部署在服务器上,可能是可以通过 http://www.example.com/.env 查看到larave ...

  4. laravel中如何防止直接访问.env文件

    .env文件含有数据库账号密码等敏感数据,在laravel5.2中,在本地访问127.0.0.1/laravel/.env可直接访问到.env. 为避免.env被直接访问,可使用重定向,方法如下: 在 ...

  5. Laravel 5.2 四、.env 文件与模型操作

    一..env文件 .env 文件是应用的环境配置文件,在配置应用参数.数据库连接.缓存处理时都会使用这个文件. // 应用相关参数 APP_ENV=local APP_DEBUG=true //应用调 ...

  6. Laravel 学习 .env文件 getenv 获得环境变量的值

    Laravel 学习 .env文件 getenv 获得环境变量的值  我们还需要对应用的 .env 文件进行设置,为应用指定数据库名称 sample. .env . . . DB_DATABASE=s ...

  7. Laravel 不同环境加载不同的.env文件

    假设有4个.env文件.分别为 .env.local .env.dev .env.test .env.prd 方式一 第一步:bootstrap\app.php 加入代码 $envs = ['loca ...

  8. laravel删除文件

    laravel删除文件 一.总结 一句话总结: 1.注意disk:disk决定路径 2.删单个文件的时候就用删单个文件的方式,别用删多个文件的方式(也就是参数别数组) public function ...

  9. 通过.ENV文件来配置ThinkPHP的数据库连接信息

    在ThinkPHP系统根目录创建.env文件,注意WINDOWS无法直接右键创建,使用编辑器保存时设置文件名为.env就可以创建文件.内容如下: .evn文件内容如下: [database] host ...

随机推荐

  1. buffer的相关小知识

    php与mysql的连接有三种方式,mysql,mysqli,pdo.不管使用哪种方式进行连接,都有使用buffer和不使用buffer的区别. 什么叫使用buffer和不使用buffer呢? 客户端 ...

  2. WinForm 实现主程序(exe)与其关联类库(*.dll)分开存放

    WinForm 实现主程序(exe)与其关联类库(*.dll)分开存放    开发环境:   Microsoft Windows 7 SP1 Microsoft.NET Framework 4.0 ( ...

  3. node项目搭建

    一:安装 1.简单安装法 下载.msi [编译好的nodejs]  ->  点击安装 [系统会自动配置系统变量]   2.复杂安装法(不推荐) 由于nodejs的源码由C++和js组成 同时需要 ...

  4. 两种RBAC权限控制模型详解

    序言 由于最近一直卡在权限控制这个坎上,原来设计的比较简单的权限控制思路已经无法满足比较复杂一些的场景,因此一直在探索一种在大部分场景下比较通用的权限模型. 首先,这里说明一下两种RBAC权限模型分别 ...

  5. Directx11教程(67) 显示模型文件

    原文:Directx11教程(67) 显示模型文件       在前面的教程中,我们都是通过在ModelClass中直接产生顶点和索引数据,简单的三角形,立方体等等还好说,毕竟比较简单,如何显示复杂的 ...

  6. MYSQL中LIMIT用法_后台分页

    LIMIT是MySQL内置函数,其作用是用于限制查询结果的条数. 1)其语法格式如下: LIMIT[位置偏移量,]行数 其中,中括号里面的参数是可选参数,位置偏移量是指MySQL查询分析器要从哪一行开 ...

  7. oracle触发器——ddl触发器

    什么是ddl(data definition language),说白了就是我们经常用的create.alter和drop这些数据定义语句. n  创建ddl触发器 请编写一个触发器,可以记录某个用户 ...

  8. Mysql数据库日志类型查询与配置详解

    在mysql中日志分为很多种,下面小编来给大家介绍Mysql数据库日志类型查询与使用,希望对各位同学会有所帮助 mysql常见的日志类型有五种:错误日志.二进制日志.查询日志.慢查日志和中继日志. 一 ...

  9. Linux终端常用命令(一)

    基本操作 展示全部的环境变量 export 搜索可执行文件.源文件 whereis ls 在环境变量中搜索可执行文件,并打印完整路径 which ls 展示用户命令,系统调用.库函数等 whatis ...

  10. 2019-7-4-win10-uwp-处理用户点击关闭按钮

    title author date CreateTime categories win10 uwp 处理用户点击关闭按钮 lindexi 2019-07-04 09:28:57 +0800 2019- ...