ThinkPHP开发指南-控制器之空模块

来自站长百科
跳转至: 导航、​ 搜索

导航:返回上一页

空模块的概念是指当系统找不到指定的模块名称的时候,系统会尝试定位空模块(EmptyAction),利用这个机制我们可以用来定制错误页面和进行URL的优化。现在我们把前面的需求进一步,把URL由原来的

http://<serverName>/index.php/City/shanghai/

变成

http://<serverName>/index.php/shanghai/

这样更加简单的方式,如果按照传统的模式,我们必须给每个城市定义一个Action类,然后在每个Action类的index方法里面进行处理。 可是如果使用空模块功能,这个问题就可以迎刃而解了。 我们可以给项目定义一个EmptyAction类

PHP代码

Class EmptyAction extends Action{     

Public function index(){     

// 根据当前模块名称来判断要执行哪个城市的操作     

$cityName = MODULE_NAME;     

$this->city($cityName);     

}     

Protected function city($name){     

// 和$name 这个城市相关的处理     

Echo ('当前城市: '.$name);     

}     

} 

接下来,我们就可以在浏览器里面输入


http://<serverName>/index.php/beijing/ 

http://<serverName>/index.php/shanghai/ 

http://<serverName>/index.php/shenzhen/ 

会看到依次输出的结果是:

 

当前城市:beijing 

当前城市:shanghai 

当前城市:shenzhen