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

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

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

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

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

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

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

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

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

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

'[email protected]',
	 'app_author' => 'bulb'

];

?>

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

thinkphp5.0.5框架下的配置以及.env的配置_第1张图片

应用配置/扩展配置

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

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

 '[email protected]',
	'name' => 'bbb'
];
?>

thinkphp5.0.5框架下的配置以及.env的配置_第2张图片

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

thinkphp5.0.5框架下的配置以及.env的配置_第3张图片

thinkphp5.0.5框架下的配置以及.env的配置_第4张图片

thinkphp5.0.5框架下的配置以及.env的配置_第5张图片

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

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

thinkphp5.0.5框架下的配置以及.env的配置_第6张图片

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

thinkphp5.0.5框架下的配置以及.env的配置_第7张图片

场景配置

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

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

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

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

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

thinkphp5.0.5框架下的配置以及.env的配置_第8张图片

thinkphp5.0.5框架下的配置以及.env的配置_第9张图片

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

模块配置

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

thinkphp5.0.5框架下的配置以及.env的配置_第10张图片

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

动态配置

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

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

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

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

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

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

记住先引用Env的类

thinkphp5.0.5框架下的配置以及.env的配置_第11张图片

再创建一个dev.php

thinkphp5.0.5框架下的配置以及.env的配置_第12张图片

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

再查看配置

thinkphp5.0.5框架下的配置以及.env的配置_第13张图片thinkphp5.0.5框架下的配置以及.env的配置_第14张图片

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

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

thinkphp5.0.5框架下的配置以及.env的配置_第15张图片

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

 

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

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

thinkphp5.0.5框架下的配置以及.env的配置_第16张图片

thinkphp5.0.5框架下的配置以及.env的配置_第17张图片

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

你可能感兴趣的:(thinkphp5.0.5框架下的配置以及.env的配置)