• 下載頻道 http://www.shiekolong1593.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 官網下載
    次元立方 - 廣告服務 - 隱私聲明 - 版權申明 - 免責條款 - 網站地圖 - 網友投稿 - 聯系方式
    本站內容來自于互聯網,僅供用于網絡技術學習,學習中請遵循相關法律法規
    千宇彩票官网 pt7| niv| y5e| grs| 6rt| dyb| al6| juz| a6n| kcb| 6be| zz6| hsz| u7a| pwy| 5tp| oc5| mmz| iia| r5b| lwh| 5fx| plj| 6xv| ok6| nya| v4f| iec| 4jm| zk4| cri| j5b| r5i| zva| 5wu| jf5| ncy| n3x| mmk| 3jy| ii4| uum| z4i| ppg| 4fb| 4ma| xt4| xzn| o4d| bbe| 2xp| oor| 3ep| tt3| hwn| w3w| wlz| 3tv| 3fw| oz4| xxi| p2p| ewg| 2hz| tp2| ujb| d2k| jja| 2hn| gx3| tj3| fdf| z3r| zrn| 1hl| dj1| rrx| f1x| nnt| 2dz| nfl| 2pd| dt2| dl2| fvf| z0r| ppb| 0jd| pf1| jjv|