module是一个类
名称:ModuleAction extends Action{} 首字母必须大写
同时,在请求Url的时候,也需要严格区分大小写
在APP_DEBUG,window下开发,也会强制区别大小写
ps:
//空模块
//当系统找不到指定的模块名称的时候,
//首先判断__hack_module()函数存不存在
//如果该函数存在,则利用该函数返回一个的对象(返回值必须为对象,否则return)
//如果__hack_module()不存在
//系统调用空模块 $module=A('Empty'); //大A方法 等同$module=new EmptyAction();
//如 http://localhost/orange/index.php/Aaaa/index
//没有Aaaa这个模块(类) 就执行EmptyAction下的index方法
class EmptyAction extends Action{
public function index(){
echo 111;
}
}
根据地址栏的参数分析出要调用的模块和方法
Module的空操作
当一个对象,调用一个不存在的方法时,
有一个魔术方法__call将会被调用
该方法将会判断有没有_empty()方法存在,如果有,则调用
//例 http://localhost/orange/index.php/Index/aaa
class IndexAction extends Action{
public function _empty(){
}
}
//Index这个模块(类) 下没有aaa的方法,_empty()方法存在,即被调用
前置和后置的操作
是指,某个方法调用时,会先调用其前置操作,最后调用后置方法
APP.class.php 130行左右
当调用xxx方法时,如果存在_before_xxx方法,就先调用_before_xxx
调用完xxx方法时,如果存在_after_xxx方法是,就调用_after_xxx
ps:怎么样实现万能操作呢?(就是空模块空操作,)先写一个EmptyAction类,在这类下写一个_empty()方法