美文网首页
PHP反射与接口

PHP反射与接口

作者: 罟宁 | 来源:发表于2016-10-20 14:10 被阅读0次

    反射

    1、概念

    反射指在PHP运行状态中,扩展分析PHP程序,导出或提取出相关类、方法、属性、参数等的详细信息,包括注释

    2、使用

    3、反射的作用

    用于文档生成、动态代理(proxy.php)

    <?php
    class mysql {
        public function connect($db) {
            echo "链接到数据库".$db[0];
        }
    }
    class sqlproxy {
        private $target;
        function __construct($tar) {
            $this->target[] = new $tar();
        }
        function __call($name, $args) {
            foreach ($this->target as $obj) {
                $r = new ReflectionClass($obj);
                //echo $r->getMethod($name),"<br/>";
                if ($method = $r->getMethod($name)) {
                    //echo $method->isPublic(),"<br/>";
                    //var_dump ($method->isAbstract(),"<br/>");
                    if ($method->isPublic() && !$method->isAbstract()) {
                        echo "方法前拦截记录LOG","<br/>";
                        $method->invoke($obj, $args);
                        echo "方法后拦截","<br/>";
                    }
                }
            }
        }
    }
    $obj = new sqlproxy('mysql');
    $obj -> connect('member');
    

    面向接口编程

    1、 概念:

    • 狭义:interface
    • 广义:任何一个对外服务的接口

    2、接口的作用

    • 对于实现接口的所有类,必须实现接口的全部方法
    • 接口为抽象而生
    • 接口===强制规范和契约
    • java中认为接口就是一种类型(type)

    3、总结

    • 接口作为一种规范和契约存在。作为规范,接口应该保证可用性;作为契约,接口应该保证可控性
    • 接口只是一个声明,一旦使用interface关键字,就应该实现它。由程序员实现的接口叫外部接口,由系统实现的接口叫内部接口
    • PHP接口的两个不足:1、没有契约限制; 2、缺少足够多的内部接口

    相关文章

      网友评论

          本文标题:PHP反射与接口

          本文链接:https://www.haomeiwen.com/subject/olvfuttx.html