配置目录

系统默认的配置文件目录就是应用目录(APP_PATH),也就是默认的application下面,并分为应用配置(整个应用有效)和模块配置(仅针对该模块有效)。

├─application         应用目录
│  ├─config.php       应用配置文件
│  ├─database.php     数据库配置文件
│  ├─route.php        路由配置文件
│  ├─index            index模块配置文件目录
│  │  ├─config.php    index模块配置文件
│  │  └─database.php  index模块数据库配置文件

如果不希望配置文件放到应用目录下面,可以在入口文件中定义独立的配置目录,添加CONF_PATH常量定义即可,例如:

// 定义配置文件目录和应用目录同级
define('CONF_PATH', __DIR__.'/../config/');

配置目录下面的结构类似如下:

├─application         应用目录
├─config              配置目录
│  ├─config.php       应用配置文件
│  ├─database.php     数据库配置文件
│  ├─route.php        路由配置文件
│  ├─index            index模块配置文件目录
│  │  ├─config.php    index模块配置文件
│  │  └─database.php  index模块数据库配置文件

扩展配置目录(V5.0.1

5.0.1开始增加了扩展配置目录的概念,在应用配置目录或者模块配置目录下面增加extra子目录,下面的配置文件都会自动加载,无需任何配置。并且前端和后端模块里面的php都可以调用。比如index模块里面的config,home模块里面在模板中用{$Think.config.site_name}调用不出来。

我默认的生成的配置文件位于 application下的extra目录下的settings.php文件中,  tp5中位于extra目录下的配置文件是自动加载的

模板中可以用下面的方式进行读取extra配置

 
<title>{:config('settings.site_name')}</title>

 
控制器中读取extra配置
var_dump(config('settings'));
   

如果调用应用或者模块下的config.php里面的配置参数,在模板中使用{$Think.config.site_name}。在控制器中使用 var_dump(config('site_name');


如果你定义了CONF_PATH常量为config目录为例,扩展配置目录如下:

├─application         应用目录
├─config              配置目录
│  ├─config.php       应用配置文件
│  ├─database.php     数据库配置文件
│  ├─route.php        路由配置文件
│  ├─extra            应用扩展配置目录
│  ├─index            index模块配置文件目录
│  │  ├─extra         index模块扩展配置目录
│  │  ├─config.php    index模块配置文件
│  │  └─database.php  index模块数据库配置文件

扩展配置文件的文件名(不含后缀)就是配置参数名,并且会和应用配置文件中的参数进行合并。