thinkphp5.0.5框架下的配置以及.env的配置

 配置文件加载顺序:(从大到小)

动态配置 / 扩展配置 / 模块配置 / 场景配置 / 调试配置 / 模式配置 / 公共配置 / 默认配置

公共配置 application/common/conf/config.php

惯例(默认)配置/应用配置

其中惯例配置((在thinkphp里的convention.php)在开发中不允许去修改,否则对后期的框架升级和维护都造成困难,除了数据库配置需要自定义。

但是我们可以在应用配置里修改,使得配置在惯例配置中生效。

先在public文件夹下的index.php文件中增加定义配置文件目录

//定义配置文件目录
define('CONF_PATH',__DIR__.'/../conf/');

再在application文件夹下建立conf文件夹,新建一个config.php文件,并在里面增加修改配置,比如

<?php

result[

     'app_email'=>'1111@qq.com',
	 'app_author' => 'bulb'

];

?>

用下面的图更好理解 ,conf1就像是惯例配置,conf2就是应用配置,然后键名相等,值替换。

应用配置/扩展配置

如果有扩展操作会默认的替换掉应用配置

1.在刚刚建好的conf文件夹中新建一个extra文件夹(必须要命名为extra),再在这个文件夹下面新建一个email.php,在里面添加配置。

<?php
return [
	'host' => '111@qq.com',
	'name' => 'bbb'
];
?>

2. 对数据库的配置也支持放在extra文件夹下(如果直接放在conf文件夹下面也行)

扩展配置优先级高于应用配置

我们在conf文件夹下的config.php修改一下数据库的名字

然后会发现database没有改变,只是位置提前了。database.php配置会替换掉config.php

场景配置

在不同的环境使用不同的配置。

首先现在应用配置config.php文件中加一句

'app_status'=>'home';  //或者是office

然后在conf文件夹下建立两个文件,home.php和office.php

之后可以在里面添加不同的配置

不过场景配置需要记住一点,如果我们要配置数据库的话我们需要配置数据库的所有项(这可能是thinkphp5的一个bug)否则之前的配置都会失效。

模块配置

以上的所有配置对所有模块都会直接更改,无法做到每个模块使用单独的配置。

conf目录下的配置对整个模板都有效,但是在conf文件夹下新建个目录,目录下只对和目录名相同的模块有效。

动态配置

对当前控制器或某个方法里面进行动态配置改变,配置项目值只在当前控制器或方法里有效。

--------------------------------------------

--------------------------------------------

如何配置.env文件使配置开发环境更方便

首先在.env文件里配置status,如果没有配置会默认显示自己设置的prod环境(这里.env设置的是dev环境)

接下来把根目录下的conf文件夹里的测试文件都删除,创建一个config.php文件,让它在所有的应用中都有效

记住先引用Env的类

再创建一个dev.php

(如果没有配置系统环境变量我们就默认用dev开发环境,正式环境我们只需要改变config里dev就行了)

再查看配置

如果我们现在要使用第测试二个环境,我们在conf下新建一个test.php

表示现在使用的配置文件或者开发环境是test,我们只需要进入.env文件里修改一下status为test即可

类似我们再创建线上prod环境等等。

 

我们还可以在.env里配置以组的方式配置数据库,直接在.env文件里修改一些配置

先要在conf下建立一个database.php文件

这样就能在开发环境到测试环境或其他环境转换时,只要保证每个环境下的.env文件是正确的就行了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值