ThinkPHP空模块和空操作详解


Posted in PHP onJune 30, 2014

ThinkPHP的空模块和空操作也是很有实用意义的功能,空模块的概念就是当ThinkPHP找不到指定模块的时候,它会尝试去定位空模块(EmptyAction),执行空模块里面的index操作。同理,空操作也是同样的概念,当系统找不到指定模块下的操作方法的时候,就会尝试去定位空操作方法(empty)。其实很好理解,就有点类似php虚拟主机里面的自定义404页面,但它比自定义404更加灵活,利用这个机制,我们可以实现错误页面和一些URL的优化,下面分别详细介绍下空模块和空操作的写法。

1.空模块,在项目中定义EmptyAction类:

<?php
public class EmptyAction extends Action {
public function index(){
echo "当前模块不存在";
  }
 }
?>

这就是一个简单的空模块类,当然您也可以在里面做一些更加复杂的操作,一切都得根据项目的需求来写,这里只是做了演示。

2.空操作,空操作即在指定的模块下面定义,比如说,我们在User这个模块,也就是UserAction类下面定义一个空操作。

<?php
class UserAction extends Action
{
public function index()
{
$this->display();
  }
public function demo(){$this->display();
  }
public function _empty(){
   //该方法即为空操作
   echo '当前操作不存在';
  }
 }
?>

代码很简单,这就是一个空方法,并且空模块和空操作还可以同时使用,用以完成更加复杂的操作。

PHP 相关文章推荐
用Flash图形化数据(一)
Oct 09 PHP
PHP下一个非常全面获取图象信息的函数
Nov 20 PHP
在php中判断一个请求是ajax请求还是普通请求的方法
Jun 28 PHP
PHP生成验证码时“图像因其本身有错无法显示”的解决方法
Aug 07 PHP
五款PHP代码重构工具推荐
Oct 14 PHP
PDO防注入原理分析以及使用PDO的注意事项总结
Oct 23 PHP
5款适合PHP使用的HTML编辑器推荐
Jul 03 PHP
Java中final关键字详解
Aug 10 PHP
PHP导出Excel实例讲解
Jan 24 PHP
php抽象方法和抽象类实例分析
Dec 07 PHP
PHP实现数据库统计时间戳按天分组输出数据的方法
Oct 10 PHP
Laravel利用gulp如何构建前端资源详解
Jun 03 PHP
ThinkPHP视图查询详解
Jun 30 #PHP
php中eval函数的危害与正确禁用方法
Jun 30 #PHP
PHP登录环节防止sql注入的方法浅析
Jun 30 #PHP
PHP获取时间排除周六、周日的两个方法
Jun 30 #PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十六)
Jun 30 #PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十五)
Jun 30 #PHP
解析PHP强制转换类型及远程管理插件的安全隐患
Jun 30 #PHP
You might like
linux系统上支持php的 iconv()函数的方法
2011/10/01 PHP
PHP请求远程地址设置超时时间的解决方法
2016/10/29 PHP
php7新特性的理解和比较总结
2019/04/14 PHP
改善你的jQuery的25个步骤 千倍级效率提升
2010/02/11 Javascript
js获取当前月的第一天和最后一天的小例子
2013/11/18 Javascript
Express作者TJ告别Node.js奔向Go
2014/07/14 Javascript
JS实现鼠标滑过折叠与展开菜单效果代码
2015/09/06 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件体系结构
2015/11/19 Javascript
BootStrap实用代码片段之一
2016/03/22 Javascript
bootstrap提示标签、提示框实现代码
2016/12/28 Javascript
vue基于Vue2.0和高德地图的地图组件实例
2017/04/28 Javascript
javascript 中关于array的常用方法详解
2017/05/05 Javascript
angular.extend方法的具体使用
2017/09/14 Javascript
基于JavaScript实现简单的音频播放功能
2018/01/07 Javascript
vue watch深度监听对象实现数据联动效果
2018/08/16 Javascript
详解jQuery中的getAll()和cleanData()
2019/04/15 jQuery
JavaScript学习教程之cookie与webstorage
2019/06/23 Javascript
vue 导航内容设置选中状态样式的例子
2019/11/01 Javascript
python统计一个文本中重复行数的方法
2014/11/19 Python
Python利用Nagios增加微信报警通知的功能
2016/02/18 Python
深入浅出学习python装饰器
2017/09/29 Python
django rest framework之请求与响应(详解)
2017/11/06 Python
python实现微信小程序用户登录、模板推送
2019/08/28 Python
python 字典访问的三种方法小结
2019/12/05 Python
python加密解密库cryptography使用openSSL生成的密匙加密解密
2020/02/11 Python
Python闭包与装饰器原理及实例解析
2020/04/30 Python
python 轮询执行某函数的2种方式
2020/05/03 Python
python文件路径操作方法总结
2020/12/21 Python
CSS3实现菜单悬停效果
2020/11/17 HTML / CSS
南非最大的花卉和送礼服务:NetFlorist
2017/09/13 全球购物
一套英文Java笔试题面试题
2016/04/21 面试题
群众路线剖析材料(四风问题)
2014/10/08 职场文书
校园文化艺术节宣传标语
2014/10/09 职场文书
2015年度护士个人工作总结
2015/04/09 职场文书
2019交通安全宣传标语集锦!
2019/06/28 职场文书
Spring Cache和EhCache实现缓存管理方式
2021/06/15 Java/Android