ThinkPHP3.0完全开发手册                                           

 

13.7.8          定制模式扩展

要定制自己的模式扩展,首先要定义模式扩展的定义文件,定义文件位于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目录下面,系统可以自动加载该目录下面的行为类库。


NetPc