• 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()方法即可。(这里注意一下命名空间的引入)

  • 相关阅读:
    dubbox编译
    fastdfs的启动停止
    fastDFS单机
    Dsu on tree算法
    The 2017 ACM-ICPC Asia Beijing Regional Contest(重现赛)
    2019南京ICPC(重现赛) F
    Codeforces Round #634 (Div. 3)
    Codeforces Round #632 (Div. 2)
    HDU 6521 Party(线段树)
    牛客小白月赛20
  • 原文地址:https://www.cnblogs.com/zhengweizhao/p/6702941.html
Copyright © 2020-2023  润新知