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 相关文章推荐
用ODBC的分页显示
Oct 09 PHP
PHP中冒号、endif、endwhile、endfor使用介绍
Apr 28 PHP
php合并数组中相同元素的方法
Nov 13 PHP
PHP两种快速排序算法实例
Feb 15 PHP
php实现兼容2038年后Unix时间戳转换函数
Mar 18 PHP
php文件上传后端处理小技巧
May 22 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
Nov 21 PHP
Laravel框架在本地虚拟机快速安装的方法详解
Jun 11 PHP
浅谈php://filter的妙用
Mar 05 PHP
PHP中常用的三种设计模式详解【单例模式、工厂模式、观察者模式】
Jun 14 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
Feb 27 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
Mar 30 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
个人站长制做网页常用的php代码
2007/03/03 PHP
PHP设计模式之命令模式的深入解析
2013/06/13 PHP
Windows上php5.6操作mongodb数据库示例【配置、连接、获取实例】
2019/02/13 PHP
面向对象的编程思想在javascript中的运用上部
2009/11/20 Javascript
轻松创建nodejs服务器(9):实现非阻塞操作
2014/12/18 NodeJs
JavaScript学习笔记之JS函数
2015/01/22 Javascript
JS获取Table中td值的方法
2015/03/19 Javascript
原生js和jquery实现图片轮播淡入淡出效果
2015/04/23 Javascript
JavaScript中的Math.atan2()方法使用详解
2015/06/15 Javascript
深入浅析Extjs中store分组功能的使用方法
2016/04/20 Javascript
js实现图片360度旋转
2017/01/22 Javascript
JS基于for语句编写的九九乘法表示例
2018/01/04 Javascript
VueJs里利用CryptoJs实现加密及解密的方法示例
2019/04/29 Javascript
layer弹出层扩展主题的方法
2019/09/11 Javascript
react native 仿微信聊天室实例代码
2019/09/17 Javascript
如何封装Vue Element的table表格组件
2021/02/06 Vue.js
如何解决django配置settings时遇到Could not import settings 'conf.local'
2014/11/18 Python
在Python的Flask框架下使用sqlalchemy库的简单教程
2015/04/09 Python
python写入中英文字符串到文件的方法
2015/05/06 Python
Python导出DBF文件到Excel的方法
2015/07/25 Python
python中return如何写
2020/06/18 Python
python 基于Apscheduler实现定时任务
2020/12/15 Python
利用python绘制正态分布曲线
2021/01/04 Python
python 装饰器的基本使用
2021/01/13 Python
css3给背景图片加颜色遮罩的方法
2019/11/05 HTML / CSS
HTML5去掉输入框type为number时的上下箭头的实现方法
2020/01/03 HTML / CSS
英国领先的大码时装品牌之一:Elvi
2018/08/26 全球购物
企业宣传标语
2014/06/09 职场文书
行政专员岗位职责说明书
2014/09/01 职场文书
销售人员工作自我评价
2014/09/21 职场文书
2014向国旗敬礼网上签名活动总结
2014/09/27 职场文书
2014年领班工作总结
2014/11/25 职场文书
2014年留守儿童工作总结
2014/12/10 职场文书
2016春季田径运动会广播稿
2015/12/21 职场文书
信息技术课教学反思
2016/02/23 职场文书
springboot+rabbitmq实现智能家居实例详解
2022/07/23 Java/Android