env配置文件的理解

前言

env 是当前一个主流趋势,也是目前各大框架主推的动态管理不同部署环境的配置文件解决方案,比如 TP 、LV、Yii等,我做一个整理,把我对它的理解和解决了什么痛点做一个梳理:

1

在 2010 年左右框架开发还不是主流,很多项目都是自己封装类库,比如 MySQL 的连接和查询,需要自己编写类库,就把账号、密码这些参数硬编在代码里面(当然今天的思维回头去看,会觉得不合理,但是在那个时代无疑是正确的方式)

而后做部署和修改密码等事情的时候,总是要去找对应文件里面 对应硬编数据的位置,后来意识到了它的不便,就把这些所谓的 动态的、有可能改变的数据变量做成 配置文件的方式,这个思想在很大程度了得到了普及,各大框架在配置文件这个模块也是会花各种心思去尽可能方便优雅的满足各个场景。

但是现在互联的发展、需求不断复杂、技术不断迭代,各种第三放插件不断普及,需要的配置文件也越来越多:数据库配置、缓存配置、项目配置、业务逻辑配置、日志配置……有一天会发现 TMD 这么多配置文件,而且还要不断的在开发环境、测试环境、正式环境来回切换,项目多了、协作的人多了、配置文件多了自己随时都处在蒙圈的状态

然而很多人的解决方案是不管它是什么,只有是配置文件夹下的文件,不管37 21 全部忽略掉这也是最简单粗暴直接的方式,但是细想你会觉得合理吗? 因为手被蚊子咬了一个包,痒的难受,把手砍了? 这时候 env 思想就出现了,不要砍手,哪里痒,我们治理那里

2

以 database.php 数据库配置文件为例:这个配置文件下面其实有 10 多个配置信息,其实真正变动的只有 3 个 hostname、username、password 因为部署环境不同,要去配置不同的参数,因为这 3 个数据的变化,被迫把整个 database.php文件忽略了? 这样的文件还要很多 cache.php、redis.php...

我们换一个思路,我们把这些配置文件里面,因为部署环境原因需要动态改变的变量 解耦抽离出来,全部放在 env 文件来集中统一管理呢:

  1. 当需要需改配置时第一反应就是去找 env ,而不是四处去找 database.php、cache.php redis.php....
  2. 各配置文件中只是因为部署环境不同,需要改变的局部变量去动态加载 env 配置,同时有效的解决了精准忽略变量,而不是 宁可错杀一万的方式 忽略整个文件

3

略配置文件,我们 忽略 env 文件实质是,精准的 忽略变量 而不是文件,同时我在 env 文件里面标识一个当前部署环境变量

APP_STATUS = dev 这个变量参数有 dev(本地开发环境)、test(测试环境)、master(正式环境)

以对接 CA 为例:在开发环境 调有 CA 公司的测试环境接口地址 ,在测试环境调有 CA 公司测试环境接口,在正式环境调有 CA 公司正式接口

我们的环境 支付宝 公司环境(第三方环境)
本地开发环境 测试环境
测试环境 测试环境
正式环境 正式环境

我们会因为这个常规需求去搞两套配置吗?去多搞 3 个忽略文件吗?我们只需要读取 env 当前环境变量,当前部署环境值就知道现在所处部署环境,然后通过多态、条件语句、接口类等方式完美的解决了 各个部署环境下的兼容问题

这是我整理的 env 的优势以及我对它的理解:

  1. 精准忽略变量而不是文件,让忽略文件变得更有价值而不是 宁可错杀一万的方式 忽略整个文件
  2. 集中统一管理有且只有一个动态位置
  3. 兼容动态读取不同环境需要的业务逻辑走向
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,692评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,482评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,995评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,223评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,245评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,208评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,091评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,929评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,346评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,570评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,739评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,437评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,037评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,677评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,833评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,760评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,647评论 2 354

推荐阅读更多精彩内容