环境变量的配置与使用

这里是输出系统的环境变量有哪些

上面的输出结果,就是下面这个。这个就是当前系统环境变量

下面在到和app同一层级创建.env文件,这个文件在框架运行的时候就会自动加载,读取里面的配置。下图是添加下标为email的环境变量。

经过上面的编写,下面就打印出来了当前的环境变量

若想输出指定的环境变量,那么这样写就可以了。但是,一旦    $_ENV['PHP_EMAIL']里面的环境变量不存在,就会报错


另外,thinkphp5中还专门提供了一个think\Env类,使用    Env::get(‘email’)    和    $_ENV['PHP_EMAIL']    是有区别的。Env::get('email')是直接根据.env配置文件中的配置读取的,即使.env中没有这个环境变量,也不会报错,而是提示null。而用$_ENV['PHP_EMAIL']则要加前缀,否则找不到的话也会报错。(原因是thinkphp5框架会自动给环境变量的配置加上前缀,而两种使用方法又不同)

Env::get('email')中,实际上还可以输入第二个形式参数:


如果想要有一个配置组,那么就这么写就可以了

会自动的加上HOSTNAME后缀和PHP前缀

下面是获取环境变量值的方法

经过上面的学习,该如何编写.env文件,才能让我们的环境变量配置更加方便,更加容易管理呢?(下面的有点难度,有点绕)

第一步:下面的dev通常是代表开发环境,prod代表生产环境

若是没有配置系统环境变量,就默认使用'dev'开发环境,换句话说就是在.env中没有app_status的值,就用dev

补充:下面这幅图忘记引用Env了,use think\Env    同时,下面的app_status在.env文件中并没有这个设置。

总结一下就是:

在config.php中设置app_statues键的值为.env文件中的值。而前面学习的场景配置中,只要在config.php的同一层级,分别创建对应的场景文件,那么就只需要改变config.php中的app_statues值就能使用相应的场景文件。而这里的config.php的app_statues的值又是从.env文件获取的。因此,最后只需要修改.env文件的中的值,就可以实现环境的切换。

同理,若想配置数据库,那么只需要这么做:

先在.env文件中写上[database]这样的数组

该创建文件还是要创建的,这个database.php文件,由于前两节在入口文件中将conf文件夹配置成了配置文件路径,所以,这里的配置文件都会对app中的模块起作用。另外该导入模块还是要导入的,比如use think\Env

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,343评论 19赞 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,456评论 6赞 342
  • php.ini设置,上传大文件: post_max_size = 128Mupload_max_filesize ...
    bycall阅读 7,111评论 3赞 64
  • 一别两宽 各生欢喜
    青顾阅读 131评论 0赞 0
  • 朋友来玩,这些衣服要不要给带过去,我立马回答说“要”,转头顺口问老公,丽要给咱带她姑娘不穿的衣服,老公说“穿不找的...
    木木萨阅读 535评论 0赞 1

友情链接更多精彩内容