ThinkPHP3.0完全开发手册
要定制自己的模式扩展,首先要定义模式扩展的定义文件,定义文件位于Extend/Mode目录下面,命名就是模式扩展的名称(全部为小写),定义文件是一个数组,包括:
core |
系统核心列表文件定义 |
config |
模式配置文件 |
alias |
模式别名定义文件 |
extends |
模式系统行为定义 |
tags |
应用行为定义文件 |
core是模式核心列表文件,如果core没有定义,则表示采用标准模式的核心列表文件,被定义的文件列表会纳入编译缓存,核心列表可以包含函数文件和类库文件,注意下面的文件无需定义:系统的Common公共文件、Think类、ThinkException类和Behavior类。下面的类必须定义:App类和Action类。
config是模式配置定义,可以采用文件名或者直接用数组定义的方式。
alias是模式别名定义,可以采用文件名或者直接用数组定义的方式。
extends是模式系统行为定义,可以采用文件名或者直接用数组定义的方式。
tags是应用行为定义,可以采用文件名或者直接用数组定义的方式。
上面这些定义,只有需要的时候才要定义,如果没有则可不必定义,一般core定义是模式扩展必须的,改变核心列表文件的定义就能起到自定义MVC的目的。
例如,命令行模式的模式定义文件为:
// 命令行模式定义文件
return array(
'core' => array(
MODE_PATH.'Cli/functions.php', // 命令行系统函数库
MODE_PATH.'Cli/Log.class.php',
MODE_PATH.'Cli/App.class.php',
MODE_PATH.'Cli/Action.class.php',
),
// 项目别名定义文件 [支持数组直接定义或者文件名定义]
'alias' => array(
'Model' => MODE_PATH.'Cli/Model.class.php',
'Db' => MODE_PATH.'Cli/Db.class.php',
'Cache' => CORE_PATH.'Core/Cache.class.php',
'Debug' => CORE_PATH.'Util/Debug.class.php',
),
// 系统行为定义文件
'extends' => array(),
);
模式扩展本身是一个扩展的集成,自身还可以包含其他扩展,例如行为扩展、函数扩展、类库扩展等。如果模式扩展中包含了自己的行为扩展,那么可以放到模式扩展目录下面的Behavior目录下面,系统可以自动加载该目录下面的行为类库。