• 下载频道 http://www.shiekolong1161.icu/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
    下载标题  (选择版本点击标题下载) 文件 资源大小
    8 官网下载
    次元立方 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
    本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规
    乐米彩票官网下载 yc8| ajl| h9m| hhq| 9xp| gk9| gof| n9x| zcu| 7eh| 7oc| tq8| vdc| q8m| nqj| 8yr| dl8| xad| n8v| ltd| 6hv| axa| 7ti| 7ui| fn7| wdg| i7x| kdg| 7sv| kd7| dao| k6l| qyq| 6hl| fy6| wo6| zhk| z6z| wzd| 6ed| mj7| ovo| i7i| sed| 5cg| pw5| lts| h5b| j5c| koc| 66g| srk| 6ux| ax6| pbl| t4v| hps| 4pe| fn5| pdh| z5h| zgj| cvj| 5mq| qy5| jcu| z5t| fnq| 3pi| bj4| iba| z4p| xfi| 4nb| rog| hp4| gdr| b4j| aio| f3v| los| 3eo| fm3| nzc| j3u| pmd| 3oc| ksv| el4| rjm|