【一】概论

(1)定义

空操作指系统在找不到指定操作方法的时候。会定位到空操作方法 / 控制器来执行,利用这个机制,我们可以实现错误页面的自定义和URL的优化

(2)场景

常用于错误页面的自定义

(3)一般的系统自带的错误页面分两种

①调试 / 开发阶段:会显示出错误信息、错误位置、当前TP版本

②生成阶段:显示错误提示、TP版本。安全性相对于之前有所提高,但用户还是较差

(4)空操作

针对以上情况,这时便可以用空操作的机制进行错误页面美化

(5)说明------针对方法和控制器

1. 空操作方法:在控制器里可以定义一个操作方法,名字叫做_empty();若控制器里方法找不到时便会执行空操作

2. 空操作控制器:在TP里存在空控制器,若找不到指定控制器便会访问空控制器。空控制器文件名为EmptyController.class.php

(6)实现:

 1. 空操作方法_empty()

例如控制器EmailController.class.php里创建空方法_empty(),如果访问Email控制器下的方法不存在,则调用_empty()方法

注意:只是针对当前控制器的空操作方法

//空方法
public function _empty(){
echo "您好,页面不存在哦^_^,即" . ACTION_NAME . "操作不存在";
}

此时浏览器的URL输入不存在的模板Email控制器下的index.html模板,浏览器报错提示如下

常见的系统常量:http://570109268.iteye.com/admin/blogs/2415438

2. 空控制器EmptyController.class.php

<?php
namespace Admin\Controller;
use Think\Controller;
class EmptyController extends Controller{
public function _empty(){
echo "访问的页面不存在,空控制器";
}
}
?>

接下来访问空控制器+空方法,这时会优先调用空控制器的处理方法。如下访问空控制器aaa,下的空方法aaa

(7)案例:用空操作方法实现404页面的自定义

分析:

第一步:创建空操作控制器和空方法

空控制器EmptyController.class.php;空操作方法:_empty()

第二步:展示静态页

将错误模板页面复制到指定位置Application\Admin\View\Empty\error.html,修改静态资源路径

第三步:

在空控制器中的空操作方法,展示错误的模板页面

①EmptyController.class.php:

<?php
namespace Admin\Controller;
use Think\Controller;
class EmptyController extends Controller{
public function _empty(){
$this->display('Empty/error');//错误页面的展示
}
}
?>

②当控制器存在,方法不存在时会访问该控制器下的_empty()方法

例如访问Email控制器下的aaa方法,此时会调用Email控制器下的_empty方法。所以还要对该方法进行修改

EmailController.class.php:

//空方法
public function _empty(){
// echo "您好,页面不存在哦^_^,即" . ACTION_NAME . "操作不存在";
$this->display('Empty/error');
}

.

ThinkPHP---thinkphp拓展之空操作的更多相关文章

  1. Thinkphp空操作空模块

    空操作和空模块很有实用意义,他有些类似于PHP虚拟机自定义的404页面,利用这个机制我们可以更好的实现URL和错误页面的一些优化. 一.空模块: ​         很好理解,就是当你执行不存在模块的 ...

  2. Thinkphp 空操作、空控制器、命名空间

    1.空操作 空操作是指系统在找不到请求的操作方法的时候,会定位到空操作(_empty)方法来执行,利用这个机制,我们可以实现错误页面和一些URL的优化. http://网址/index.php/Hom ...

  3. Thinkphp入门 二 —空操作、空模块、模块分组、前置操作、后置操作、跨模块调用(46)

    原文:Thinkphp入门 二 -空操作.空模块.模块分组.前置操作.后置操作.跨模块调用(46) [空操作处理] 看下列图: 实际情况:我们的User控制器没有hello()这个方法 一个对象去访问 ...

  4. thinkPHP 空模块和空操作、前置操作和后置操作 详细介绍(十四)

    原文:thinkPHP 空模块和空操作.前置操作和后置操作 详细介绍(十四) 本章节:介绍 TP 空模块和空操作.前置操作和后置操作 详细介绍 一.空模块和空操作 1.空操作 function _em ...

  5. thinkphp的空控制器和空操作以及对应解决方法

    在上篇随笔中我们已经知道了tp框架的四种访问方式,那么当在地址栏输入不存在的操作方法.控制器会怎么样呢? 先看一下定义: 空操作:一个对象(控制器)调用本身不存在的方法 空控制器:在实例化控制器对象的 ...

  6. ThinkPHP通过类的链式继承优化空操作的实现

    上篇<ThinkPHP空操作和空控制器的处理>中,在处理空操作时修改了父类Controller.class.php中代码,不到万不得已不能 修改基类控制器中的原码,此时可在子类与父类之间, ...

  7. 2016/5/6 thinkphp ①框架 ② 框架项目部署 ③MVC模式 ④控制器访问及路由解析 ⑤开发和生产模式 ⑥控制器和对应方法创建 ⑦视图模板文件创建 ⑧url地址大小写设置 ⑨空操作空控制器 ⑩项目分组

    真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格不一样) 项目稳 ...

  8. thinkPHP 空模块和空操作、前置操作和后置操作 具体介绍(十四)

    本章节:介绍 TP 空模块和空操作.前置操作和后置操作 具体介绍 一.空模块和空操作 1.空操作 function _empty($name){ $this->show("$name ...

  9. ThinkPHP空操作与命名空间

    命名空间:相当于一个虚拟的目录 正常管理文件使用文件夹--物理区分 TP框架的初始命名空间是:ThinkPHP\Library 在TP框架下命名空间里面使用\代表的是初始命名空间(ThinkPHP\L ...

随机推荐

  1. scikit-learn:3. Model selection and evaluation

    參考:http://scikit-learn.org/stable/model_selection.html 有待翻译,敬请期待: 3.1. Cross-validation: evaluating ...

  2. COCOS学习笔记--即时动作ActionInstant

    Cocos引擎中的动作类的关系图例如以下: 能够看出,Action是继承自Ref类的,之前我的博客中也有讲过,Ref类是cocos2dx全部类的基类.动作类(Action)是全部动作的基类.它通过cr ...

  3. [翻译角]Headline English: A Captain Should Be Pitch Perfect at a Multitude of Skills (ESLPOD Blog)

    以下转自www.eslpod.com,翻译为本人添加.其余版权均归原网站所有. ESLPOD是一个英语学习网站,我最初知道这个网站,是因为“奶爸”<把你的英语用起来>(电子版3元)一书的推 ...

  4. 【bzoj1149】 [CTSC2007]风玲Mobiles

    题目意为:给一颗二叉树,每一次操作可以交换该子树的左右两颗子树,要将该树变为完全二叉树,求最小操作次数.从根开始进行一遍DFS.记录每棵子树的大小size,如果左子树的size小于右子树的size那么 ...

  5. Python读取大文件(GB)

    Python读取大文件(GB) - CSDN博客 https://blog.csdn.net/shudaqi2010/article/details/54017766

  6. SNAPSHOTTING

    /etc/redis.conf ################################ SNAPSHOTTING ################################## Sav ...

  7. YTU 2500: 二元表达式计算

    2500: 二元表达式计算 时间限制: 1 Sec  内存限制: 128 MB 提交: 38  解决: 23 题目描述 根据输入的含有两个二元运算的表达式,编程计算并输出表达式的值.如输入:  2+9 ...

  8. POJ 2562:Primary Arithmetic

    Primary Arithmetic Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11135   Accepted: 40 ...

  9. 4.7.4 Constructing LALR Parsing Tables

    4.7.4 Constructing LALR Parsing Tables We now introduce our last parser construction method, the LAL ...

  10. 洛谷P1531 I Hate It

    题目背景 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少.这让很多学生很反感. 题目描述 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的 ...