【一】概论

(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. Android API Guides –System Permissions

    系统权限 声明: 本文由Gordon翻译 公布于www.dlvoice.com 欢迎转载,但请保留此声明 原文地址:http://developer.android.com/guide/topics/ ...

  2. manacher hihoCoder1032 最长回文子串

    居然能够做到O(n)的复杂度求最长回文.,也是给跪了. 以下这个人把manacher讲的很好,,能够看看 http://blog.csdn.net/xingyeyongheng/article/det ...

  3. c# Custom Controls

    http://www.cnblogs.com/light169/archive/2008/06/11/1217139.html

  4. charset='utf8mb4'

    charset='utf8mb4' conn = pymysql.connect(host=h, port=pt, user=u, passwd=p, db=db, charset='utf8mb4' ...

  5. SepicalJudge

    原文:http://www.cnblogs.com/chouti/p/5752819.html Special Judge:当正确的输出结果不唯一的时候需要的自定义校验器 首先有个框架 #includ ...

  6. POJ3528 HDU3662 三维凸包模板

    POJ3528 HDU3662 第一道题 给定若干点 求凸包的表面积,第二题 给定若干点就凸包的面数. 简单说一下三维凸包的求法,首先对于4个点假设不共面,确定了唯一四面体,对于一个新的点,若它不在四 ...

  7. bzoj3612 [Heoi2014]平衡——整数划分

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3612 看了好久才弄清楚题意... 原来整数划分就是这样的啊:https://blog.csd ...

  8. hdu1213 并查集不压缩

    题意:题意:一个人请人吃饭,相互认识的朋友在一张桌子,相互认识的朋友的意思是如果A认识B,B认识C,那么A.B.C是朋友,对于每组输入输出桌子的张数. Sample Input 2 5 3 1 2 2 ...

  9. bzoj 4596: [Shoi2016]黑暗前的幻想乡【容斥原理+矩阵树定理】

    真是简单粗暴 把矩阵树定理的运算当成黑箱好了反正我不会 这样我们就可以在O(n^3)的时间内算出一个无向图的生成树个数了 然后题目要求每个工程队选一条路,这里可以考虑容斥原理:全选的方案数-不选工程队 ...

  10. python实现对某招聘网接口测试获取平台信息

    """通过接口测试的技术获取某招聘网平台的资料"""url = "https://www.lagou.com/jobs/posit ...