ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 空模块 [上一页](36.html "上一页")[下一页](38.html "下一页") 空模块的概念是指当系统找不到指定的模块名称的时候,系统会尝试定位空模块(EmptyAction),利用这个机制我们可以用来定制错误页面和进行URL的优化。 现在我们把前面的需求进一步,把URL由原来的 http://serverName/index.php/City/shanghai/ 变成 http://serverName/index.php/shanghai/ 这样更加简单的方式,如果按照传统的模式,我们必须给每个城市定义一个Action类,然后在每个Action类的index方法里面进行处理。 可是如果使用空模块功能,这个问题就可以迎刃而解了。 我们可以给项目定义一个EmptyAction类`<?php<br class="calibre5"></br>    class EmptyAction extends Action{<br class="calibre5"></br>        public function index(){<br class="calibre5"></br>            //根据当前模块名来判断要执行那个城市的操作<br class="calibre5"></br>             $cityName = MODULE_NAME;<br class="calibre5"></br>            $this->city($cityName);<br class="calibre5"></br>        }<br class="calibre5"></br>        //注意 city方法 本身是 protected 方法<br class="calibre5"></br>        protected function city($name){<br class="calibre5"></br>            //和$name这个城市相关的处理<br class="calibre5"></br>             echo '当前城市' . $name;<br class="calibre5"></br>        }<br class="calibre5"></br>    }`接下来,我们就可以在浏览器里面输入 http://serverName/index.php/beijing/ http://serverName/index.php/shanghai/ http://serverName/index.php/shenzhen/ 由于系统并不存在beijing、shanghai或者shenzhen模块,因此会定位到空模块(EmptyAction)去执行,会看到依次输出的结果是: 当前城市:beijing 当前城市:shanghai 当前城市:shenzhen 空模块和空操作还可以同时使用,用以完成更加复杂的操作。 [上一页](36.html "上一页")[下一页](38.html "下一页")