云服务器 99 / 年,新老同享(可以99/年续费),开发者力荐特惠渠道,新客户在享受9折
阿里云推广

Thinkphp5中使用.env模拟本地环境变量,让配置更优雅!

  • 内容
  • 评论
  • 相关

自从thinkphp5发布以来,可以说越来越优雅了,竟然支持.env配置文件啦!想必熟悉那个以优雅著称的某框架的同学一定不陌生。

支持多种配置格式
thinkphp5支持的配置类型包括.ini、.xml、.json 、.yaml和 .php。


那么我们的.env就是采用ini方式的配置格式。用于在开发过程中模拟环境变量配置(该文件建议在服务器部署的时候忽略)。

配置.env
在项目根目录(不是application目录!!!)创建.env文件,配置格式例如:
APP_DEBUG =  true
APP_TRACE =  true
[database]
hostname =  127.0.0.1
hostport =  3306
username =  root
password =  123456
database =  youpinhui
[rediscache]
prefix = fl_
expire =  7200
host =  127.0.0.1
port =  6379
password =  905507
[redissession]
prefix = zhensoft
expire =  3600*4
host =  127.0.0.1
port =  6379
password =  905507


这样我们就可以使用Env类来读取配置:

获取环境变量 如果不存在则使用默认值root
Env::get('database.username','root');
当然你也可以使用助手函数:

env('database.username', 'root')
环境变量的获取不区分大小写
环境变量中设置的APP_DEBUG和APP_TRACE参数会自动生效(优先于应用的配置文件),其它参数则必须通过Env::get方法才能读取。

使用.env里的配置
在config/database.php中:

use \think\Env;
return [
    // ……
    // 服务器地址
    'hostname' => env('database.hostname', '127.0.0.1'),
    // 数据库名
    'database' => env('database.database', 'youpinhui'),
    // 用户名
    'username' => env('database.username', 'root'),
    // 密码
    'password' => env('database.password', '123456'),
    // 端口
    'hostport' => env('database.hostport', '3306'),

];
其他配置,同样可以这样配置和使用。

最后
这样本地的开发环境获取.env的链接字符串,在部署线上生产环境的时候去掉.env,比如在使用svn提交到仓库的时候吧.env设置忽略,这样就能很优雅的发布代码到生产环境了。
有了.env 文件,再也不用每次去改config里的配置啦!


本文标签:

版权声明:若无特殊注明,本文皆为《菜鸟站长》原创,转载请保留文章出处。

本文链接:Thinkphp5中使用.env模拟本地环境变量,让配置更优雅! - https://wziyi.com.cn/?post=254

发表评论

电子邮件地址不会被公开。 必填项已用*标注

评论

1条评论
  1. avatar

    ezra Lv.1 回复

    用了laravel之后不觉得比TP5强多少 表情 ,虽然好久没用过tp了

    IP数据库文件不存在或者禁止访问或者已经被删除!