久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

PHP框架自動加載類文件原理詳解

這篇文章主要為大家詳細介紹了PHP框架自動加載類文件原理,具有一定的參考價值,感興趣的小伙伴們可以參考一下

描述:公司項目PHP用作中間轉發層(接收http請求,用 socket跟c++做通信),由于代碼沒有用到框架,這些東西自然就是之前的人自己寫的。最近需要對這個底層進行優化,于是便看了下這部分的代碼。

目的:這塊代碼的主要作用是把主目錄下的所有插件類一次性全部加載進來。當使用尚未被定義的類(class)和接口(interface)時自動去加載。通過注冊自動加載器,腳本引擎在 PHP 出錯失敗前有了最后一個機會加載所需的類。

實現方法:主要用到PHP函數__autoload()

詳細:

error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
set_include_path($_SERVER['Root_Path'] . '/libs' . PATH_SEPARATOR .
   $_SERVER['Root_Path'] . '/lib' . PATH_SEPARATOR .
   get_include_path() );
if (!function_exists('__autoload')) {
 function __autoload($className)
 {
 ///優化包含路徑
 $path=_getRootPath($className);
 $revpath=strtr($className, '_', '/'). '.php';
 $rootpath=$path.$revpath;
 file_exists($rootpath)?include($rootpath):@include($revpath);
 }
}

/**
 *得到根路徑*
 */
function _getRootPath($classname)
{
 $pearpath=$_SERVER["PHP_PEAR_PATH"].'/';
 $libpath=$_SERVER['Root_Path'] . '/lib/';
 $libspath=$_SERVER['Root_Path'] . '/libs/';

 if(strpos($classname,'Zend_')===0) return $pearpath; ///zend 框架路徑
 if(strpos($classname,'DB_')===0 || strpos($classname,'Interface_')===0 || strpos($classname,'Others_')===0 || strpos($classname,'Pay_')===0 || strpos($classname,'PHPMailer_')===0 ) return $libspath;
 return $libpath;
}

其中_getRootPath($classname)函數獲取的是類名文件所在的真實目錄,根據類名的頭字段判斷類在哪個目錄下;

如果類能在這些目錄下找到,類在使用前就會被加載。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持。

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

主站蜘蛛池模板: 毛片免费观看 | 欧美中文一区 | 日韩欧美福利视频 | 中文字幕一区二区三区四区五区 | 黄免费在线 | 久久久久久女 | 秋霞电影院午夜伦 | 亚洲国产精品一区二区久久 | 亚洲精品电影网在线观看 | 狠狠综合久久av一区二区老牛 | 亚洲国产电影 | 国产美女h视频 | 97成人精品 | 三级在线视频 | 日韩精品一区二区三区视频播放 | 欧美一区二区三区的 | 精品色| 国产做爰 | 国产精品一区二区精品 | 在线观看特色大片免费网站 | 国产免费一区 | 亚洲在线一区二区 | 亚洲欧美日韩在线 | 免费黄网站在线观看 | 日本久久久久久 | 日本精品一区二区三区视频 | 99久久婷婷国产综合精品 | 亚洲综合色视频在线观看 | 久久中文视频 | 色精品 | 成人精品一区二区三区中文字幕 | 99精品国产一区二区三区 | 古装三级在线播放 | 成人在线播放网站 | 欧美性久久 | 日日夜夜视频 | 国产精品美女久久久久久免费 | 欧美xxxx色视频在线观看免费 | 精品一区二区久久久久久久网站 | 欧美精品久久久久 | av一级久久 |