• 下载频道 http://www.it165.net/down/
  • PHP的 AOP 扩展 Runkit

    发布日期:2014-02-26 21:49:19
    Tag标签:PHP  AOP  扩展  Runkit  
    • 关键词:
      PHP  AOP  扩展  Runkit  
    • 所属栏目:
      PHP
    • 开发语言:
      PHP    
    • 软件授权:
      BSD  
    • 运行平台:
      跨平台    
    • runkit扩展库是pecl的php扩展的一部分。
       
      runkit提供了一套函数,能让你动态的修改任意类和函数的定义。根据php提供的反射机制,得到所有用户定义的类和函数,你可以把他们重命名然后再用原来的函数名/方法名重新添加一个方法/函数,重新添加的函数的函数体,你可以任意定义---用字串儿,当你的php脚本开始执行时,你要最先 调用你设计的这个“钩子”,把所有的类的方法或函数都"钩"一遍,这样,不管是哪个方法在执行的时候,都会执行到你提供的切入点上的代码.
       
      不过,在使用runkit的时候,还遇到一个问题:就是大小写的问题,起初,在“钩”方法的时候,有的方法带有大写字母,通过反射得到的方法名 也是区分大小写的,但是,应该在php解析执行函数的时候,还是把所有方法名或函数名都转换成了小写,这样,在用runkit提供的动态添加方法的函数添 加方法时,也忠实方法原来的命名,带着大写字母就直接添进去了,结果,再调用被钩的方法的时候,报错,死活也找不着原来的那个方法了,原因应该就 是,php在解析执行类、方法、函数时,应该都是按小写形式来定位的方法和函数的,而用runkit直接添加进去的带有大写字母的函数,自然就会找不到, 所以,在用runkit添加方法的时候,要把方法名都转换成小写,这样php就可以找到这个方法了,函数应该也是同样的.
       
      示例代码:
       
      php.ini:
      runkit.superglobal=foo,bar
       
      test.php:
      function testme() {
        echo "Foo is $foo\n";
        echo "Bar is $bar\n";
        echo "Baz is $baz\n";
      }
      $foo = 1;
      $bar = 2;
      $baz = 3;
       
      testme();
       
      输出:
      Foo is 1
      Bar is 2
      Baz is
       
      兼容性: PHP 4.2 or greater
    下载标题  (选择版本点击标题下载) 文件 资源大小
    PHP的 AOP 扩展 Runkit it165.net_0226zenovich-runkit.zip 176KB
    次元立方 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
    本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规