zoukankan      html  css  js  c++  java
  • ThinkPHP框架 _ 学习6

    【空操作和空控制器使用】

    学习空操作和空控制器的原因

       用户在访问控制器的时候,空操作会让网站提供一些错误的信息,处于安全考虑不给用户提示任何错误信息,防范黑客对网址进行攻击

    空操作:就没有指定的操作方法

    空控制器:没有指定控制器

    http://网址/index.php/Home/User/login

    http://网址/index.php/Home/User/hello 空操作

    http://网址/index.php/Home/beijing/login   空控制器

    空操作:

    一般网站处于安全考虑不给用户提示任何错误信息

    “空操作”本质意思:一个对象(控制器)调用本身不存在的方法

    OOP里边,对象调用本身不存在方法,处于用户体验比较好的角度考虑,我们可以在类里边制作一个魔术方法:function __call();

    普通控制器父类的位置://Controller父类:TinkPHP/Library/Think/Controller.class.php

     

     在这个function  __call()中,它先去找一下当前控制器的对象,然后查找相应的方法

       接着它会判断是否存在模板,如果有模板的话,它会输出模板。模板在view目录下

    空操作有两种解决方案:

    ① 在对应的控制器里边制作一个方法,名称为”_empty”,这个控制器的空操作都会自动执行该方法。(推荐使用)

         可以在自己的控制器类中定义自己的_empty函数的内容

    ② 给空操作的名称制作一个同名的模板出来,系统会自动调用(不推荐使用,因为每次空操作的方法的名称都不一样,不可能一一去创建名称不一样的模板)

    【空控制器】

    http://网址/index.php/Home/tianjin/login

    空控制器:在实例化控制器对象的时候,没有找到指定的类

    什么时候实例化控制器对象:ThinkPHP/Library/Think/App.class.php

    熟记文件:

    index.php  入口文件

    ThinkPHP/ThinkPHP.php  框架核心文件

    ThinkPHP/Library/Think/Think.class.php  框架核心文件

    ThinkPHP/Library/Think/App.class.php  框架应用文件

    App.class.php内部包括控制器对象创建,以及对象调用指定的方法呈现内容。

    快捷操作方法:

     先是查看父类的控制器的方法,然后在自己控制器的目录下创建一个EmptyController.class.php的控制器,在里面定义一个function _empty()函数,输出在用户在空控制器操作的时候,自己想输出的内容。

    空控制器处理方案:可以再制作一个控制器,名称EmptyController.class.php

    在该控制器内部其实只需要制作一个_empty()方法即可。(这里注意一下命名空间的引入)

  • 相关阅读:
    软件测试基础5 ——系统测试之软件质量
    软件测试基础4 ——系统测试之测试方法
    软件测试基础3 ——系统测试之系统测试类型
    软件测试基础2 ——系统测试之测试对象与测试级别
    软件测试基础1 ——系统测试之测试基础
    《软件测试方法和技术》-读书笔记(三)
    《软件测试方法和技术》-读书笔记(二)软件缺陷的产生
    《软件测试方法和技术》-读书笔记(一)
    bug的一些事
    开发版速达-提供在线帐套配置功能
  • 原文地址:https://www.cnblogs.com/zhengweizhao/p/6702941.html
Copyright © 2011-2022 走看看