Thinkphp空操作空模块

空操作和空模块很有实用意义,他有些类似于PHP虚拟机自定义的404页面,利用这个机制我们可以更好的实现URL和错误页面的一些优化。

一.空模块:

?         很好理解,就是当你执行不存在模块的时候,thinkphp会自动寻找该模块,当找不到该模块的时候,Thinkphp会自动定义空模块下的index方法。

<?php

             class EmptyControl?ler extends Controller{

                        public function index(){

                               echo ‘<script>window.location.href="../Er/error"</script>‘;?

                }

?这是一个简单的空模块,可以根据项目需求进行开发

二.空操作:

空操作就是,当你在当前模块,执行这个模块没有的方法时,会自动跳转到_empty这个方法,并且可以和空模块同时使用。

例如,index模块下定义一个空操作

<?php
           class IndexController extendx Controller{

                      public function index(){

?                              echo "index function";

                      }

                      public function _empty(){

                              echo ‘<script>window.location.href="../Er/error"</script>‘;?

                   }?

到这就OK了! 更加复杂的就要具体事情具体分析了!!

时间: 2024-10-08 00:02:03

Thinkphp空操作空模块的相关文章

thinkphp5 的空操作 空控制器 空模块

空操作 空控制器 https://www.kancloud.cn/manual/thinkphp5/118052 空控制器 要在配置文件里面 制定处理错误的 控制器名字 // 更改默认的空控制器名 'empty_controller' => 'MyError', 空模块 关闭调试模式,开启404模板的配置 自己定义模板就可以了 APP_PATH 指的就是 application目录 //404模版定义 'http_exception_template' => [ // // 定义404错误的重

PHP TP空操作空控制器

__双下划线开头,统称为魔术方法 空操作方法1.做empty方法(在子类里写方法) function _empty() { echo "网页不存在,请检查浏览器地址信息"; }2.做默认模板(不好用,可控性差) 空控制器做empty控制器,在里面写empty方法 跨控制器调用1.造对象方法 $index=new IndexController();//这里大小写敏感 echo $index->shuchu();2.使用A方法造对象方法(快捷方法) $index = A("

ThinkPHP - 空模块+空操作

空操作 空操作是指系统在找不到指定的操作方法的时候,会定位到空操作(_empty)方法来执行,利用这个机制,我们可以实现错误页面和一些URL的优化. 例如,下面我们用空操作功能来实现一个城市切换的功能.我们只需要给CityAction类定义一个_empty (空操作)方法: <?php class CityAction extends Action{ public function _empty($name){ //把所有城市的操作解析到city方法 $this->city($name); }

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

1.空操作 空操作是指系统在找不到请求的操作方法的时候,会定位到空操作(_empty)方法来执行,利用这个机制,我们可以实现错误页面和一些URL的优化. http://网址/index.php/Home/Main/login http://网址/index.php/Home/Main/hello  空操作 出现页面: 显示的错误信息过于详细,为安全以及优化页面起见,实行空操作 1.做一个_empty()方法.要在子类里面写,不要再父类里(推荐使用) function _empty() { ech

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

原文:Thinkphp入门 二 -空操作.空模块.模块分组.前置操作.后置操作.跨模块调用(46) [空操作处理] 看下列图: 实际情况:我们的User控制器没有hello()这个方法 一个对象去访问这个类不存在的方法,那么它会去访问”魔术方法__call()” 用户访问一个不存在的操作—>解决:给每个控制器都定义个_empty()方法来处理 第二个解决方法:定义一个空操作 [空模块处理] 我们使用一个类,但是现在这个类还没有被include进来. 我们可以通过自动加载机制处理__autoloa

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

本章节:介绍 TP 空模块和空操作.前置操作和后置操作 具体介绍 一.空模块和空操作 1.空操作 function _empty($name){ $this->show("$name 不存在 <a href='__APP__/Index/index'>返回首页</a>"); } 2.空模块(EmptyAction.class.php的文件) class EmptyAction extends Action{ function index(){ //$thi

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

本章节:介绍 TP 空模块和空操作.前置操作和后置操作 详细介绍 一.空模块和空操作 1.空操作 function _empty($name){ $this->show("$name 不存在 <a href='__APP__/Index/index'>返回首页</a>"); } 2.空模块(EmptyAction.class.php的文件) class EmptyAction extends Action{ function index(){ //$thi

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

在上篇随笔中我们已经知道了tp框架的四种访问方式,那么当在地址栏输入不存在的操作方法.控制器会怎么样呢? 先看一下定义: 空操作:一个对象(控制器)调用本身不存在的方法 空控制器:在实例化控制器对象的时候,没有找到指定的类 首先,在Application文件下新建Ceshi模块,并在Ceshi模块下按照Home模块建立相同的文件夹,如下图: 1)在Controller文件夹下新建Login控制器: <?php namespace Ceshi\Controller; use Think\Contr

TP之空操作及View模块

空操作可以分为两类:空操作方法,空控制器. 空操作方法参考核心类Controller.class.php中__call魔术方法定义一个_empty()操作方法 <?php namespace Home\Controller; use Think\Controller; class TestController extends Controller { public function _empty() //空操作:就有指定的操作方法.在子类中写入空方法,保护信息防止外泄,实际项目中每个页面都要写