ThinkPHP3.0完全开发手册                                           

 

13.3.2          Hack方法

新版提供了两个hack方法用于对模块和操作方法进行扩展,这些hack函数可以定义到项目的公共函数库里面。

__hack_module  模块hack函数

用法

__hack_module ()

参数

返回值

如果返回一个对象,则会继续执行该对象的对应当前操作的方法。否则,将在执行完__hack_module函数后中止当前操作的执行,但不影响app_end标签的行为执行。

__hack_module仅在访问一个不存在的模块的时候会被调用,优先级大于空模块。简单的说,如果定义了__hack_module 则当前模块不存在的情况下操作会被接管。

下面是一个定义的示例:

function __hack_module(){

if ('Test'== MODULE_NAME){

 $module = New MyAction();

 return $module;

}

}

__hack_action  操作hack函数

用法

__hack_action ()

参数

返回值

__hack_action函数定义后仅在访问一个不存在的操作方法,而且当前控制器没有定义空操作方法和对应的默认模板文件的时候才会被执行。在__hack_action 函数中获取当前的操作名可以调用常量ACTION_NAME,你可以根据情况自行处理当前的操作。

下面是一个定义的示例:

function __hack_action(){

if ('Test'== ACTION_NAME){

 echo 'Hello,Just Test! You can do anything here…';

}

}

 


NetPc