• 【转】PHP简单拦截器的实现


    最近在看Yii的源代码,收获了不少,这里就是从中得到的启发,而写的一个简单拦截器的实现下面看例子:

    <?php
    class A{
        private $_e = array();
       
        public function attachEvent($name,$handle){
            $this->_e[$name] = $handle;
        }
       
        public function raiseEvent($name){
             call_user_func($this->_e[$name]);
        }
       
        public function action(){
            $this->raiseEvent("befor");
            echo "hahaha";
            $this->raiseEvent("after");
        }
    }

    function beforAction(){
        echo "befor action";
    }

    function afterAction(){
        echo "after action";
    }


    $a = new A();
    $a->attachEvent("befor", "beforAction");
    $a->attachEvent("after", "afterAction");

    $a->action();

    这里思路蛮好的,可以在任何你想调用的函数前调用自己的拓展的功能,Yii里面的拦截器就是这么实现的。这里的event你可以添加N个,我为了让人更易懂,就没有拓展。

    from:http://blog.sina.com.cn/s/blog_495697e60100yuvh.html

  • 相关阅读:
    visual sudio开发工具使用小技巧
    JS去除右边的逗号
    下拉标题
    sp_addextendedproperty
    触发器的使用
    缺失一个正数
    组合总和 去重
    拖动 Drag
    n皇后问题
    括号生成
  • 原文地址:https://www.cnblogs.com/xuan52rock/p/5509241.html
Copyright © 2020-2023  润新知