ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 空模块 [上一页](# "上一页")[下一页](# "下一页") 空模块的概念是指当系统找不到指定的模块名称的时候,系统会尝试定位空模块(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);         }         //注意 city方法 本身是 protected 方法         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模块,因此会定位到空模块(EmptyAction)去执行,会看到依次输出的结果是: 当前城市:beijing 当前城市:shanghai 当前城市:shenzhen 空模块和空操作还可以同时使用,用以完成更加复杂的操作。 [上一页](# "上一页")[下一页](# "下一页")