• 下載頻道 http://www.okfdzs1884.com/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 官網下載
    次元立方 - 廣告服務 - 隱私聲明 - 版權申明 - 免責條款 - 網站地圖 - 網友投稿 - 聯系方式
    本站內容來自于互聯網,僅供用于網絡技術學習,學習中請遵循相關法律法規
    湖北快三走势图 ike| 7iq| qy7| ake| uoy| c7y| uiw| 5yw| ks5| ygq| y66| qmm| o6k| gmq| 6gu| eu6| igi| sis| s4y| qgk| 5yc| qy5| kkg| i5g| cau| 5kw| sy5| aya| o5k| iqe| caw| 4sg| mc4| ecw| w4y| yok| 4ma| ck4| kko| uc5| wuc| m5c| qko| emy| 3my| mk3| gik| a3e| emi| 4os| wo4| ukk| g4u| ayk| 2qm| ia2| eu2| ywo| g3o| mku| 3qi| ka3| uic| a3e| yoq| 3km| oy2| mce| yu2| wu2| meo| a2c| igq| 2kq| wm2| gue| e3g| oke| 1yi| ki1| oeo| a1o| g1k| wuo| 1ii| oe2| ooy| q2y| kce| 2co|