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

  • 相关阅读:
    Binary Tree Maximum Path Sum
    ZigZag Conversion
    Longest Common Prefix
    Reverse Linked List II
    Populating Next Right Pointers in Each Node
    Populating Next Right Pointers in Each Node II
    Rotate List
    Path Sum II
    [Leetcode]-- Gray Code
    Subsets II
  • 原文地址:https://www.cnblogs.com/zhengweizhao/p/6702941.html
Copyright © 2011-2022 走看看