THINKPHP3.2.3目录结构
|——Application(应用目录)
|——Public(资源文件目录)
|——ThinkPHP(ThinkPHP框架目录)
|——index.php(入口文件)
入口文件
index.php是整个站点的入口文件。入口文件中可以定义应用目录,可以引入ThinkPHP框架入口文件::
> define('APP_PATH','./Application/');
> require './ThinkPHP/ThinkPHP.php';
应用与模块
从同一个入口文件进入的,就是一个应用。一个应用下面可以有多个模块。
|——Application
|————Common(公共模块目录)
|————Home(自动生成的默认模块)
|————Admin(自定义的模块)
|————Runtime(运行时目录)
每个模块又是相互独立的,各自有代码和配置文件:
|——Application
|————Home(默认模块)
|——————Common(公共函数目录)
|——————Conf(配置文件目录)
|——————Controller(控制器目录)
|——————Model(模型目录)
|——————View(视图目录)
|——————index.html
Applicaiton/Home/Controller内有一个IndexController.class.php,是默认的控制器文件,欢迎页面就是IndexController.class.php的index方法。在index方法中展示页面:
>//默认显示Application/Home/View/index/index.html
> $this->display("index");
公共模块
公共模块本身不能通过url访问。但访问一个应用内所有模块之前都会先访问这个应用的公共配置文件(Conf/config.ini)和公共函数(Common/function.php)
禁止访问模块
'MODULE_DENY_LIST' => array('Common','Runtime','Api'),
配置文件
配置文件默认使用PHP数组的形式,如:
> return array(
> 'DEFAULT_MODULE' => 'Index', //默认模块
> 'URL_MODEL' => '2', //URL模式
> 'SESSION_AUTO_START' => true, //是否开启session
> //更多配置参数……
> );
也可以在入口文件中定义默认配置文件的格式:
> define('CONF_EXT','.ini');
可用格式为ini/json/xml/yaml及自定义格式等。
配置文件类型
1.默认配置文件(优先级最低)—— ThinkPHP/Conf/convention.php
2.应用配置文件——Application/Common/Conf/config.php
3.调试配置文件——如果开启调试模式的话会自动加载。
1)框架的调试配置文件——ThinkPHP/Conf/debug.php
2)应用的调试配置文件——Application/Common/Conf/debug.php
4.状态配置文件——在入口文件中手动加载
5.将不同的配置文件存放在Application/Common/Conf中,然后在入口文件中定义,如define(‘APP_STATUS’,’office’);
6.模块配置文件——Application/当前模块名/Conf/config.php
7.模块状态配置文件——Application/当前模块名/Conf/应用状态.php
如果应用的配置文件较大,想分成几个单独的配置文件或需要加载额外的配置文件话,可采用扩展配置或动态配置。
读取配置:
C(‘配置参数名’)
配置参数全局有效,因此在任何一个地方读取配置。
会有不同配置文件中参数重名吗?
动态配置:
C(‘参数名称’,’新的参数值’);
只对当前请求有效。
扩展配置:
'LOAD_EXT_CONFIG' => 'user,db',
表示扩展了配置文件user.php和db.php。
在应用/模块的配置文件中可配置该参数,配置后自动去应用/模块的Conf目录下查找。
批量配置:
> $config = array(
> 'WEB_SITE_TITLE'=>'ThinkPHP',
> 'WEB_SITE_DESCRIPTION'=>'开源PHP框架'
> );
> C($config);
那么$config中的变量会合并到现有的全局配置中。