PHP網站實例分析

<?php
if(version_compare(PHP_VERSION,5.0.0,<) ) { //版本小於5.0.0
   die(ThinkPHP 1.* require_once PHP > 5.0 !); //提示並終止
}
//記錄開始運行時間 PHP100註釋
$GLOBALS[_beginTime] = microtime(TRUE);

//全局變量 TRUE表示秒與微秒相加

 

// ThinkPHP系統目錄定義
if(!defined(THINK_PATH)) define(THINK_PATH, dirname(__FILE__));

//THINK_PATH的值是:d:www_4000Think_path

 

//dirname(dirname(__FILE__));得到的是文件上一層目錄名
//dirname(__FILE__);得到的是文件所在層目錄名

 

if(!defined(APP_NAME)) define(APP_NAME, md5(THINK_PATH));
//如果沒有常量APP_NAME 將應用程序名加密 (PHP100中文網)

 

if(!defined(APP_PATH)) define(APP_PATH, dirname(THINK_PATH)./.APP_NAME);

if(!defined(RUNTIME_PATH)) define(RUNTIME_PATH,APP_PATH./Temp/);

//運行時路經

 

if(file_exists(RUNTIME_PATH.~runtime.php)) {
   // 運行時路徑中有此文件,加載框架核心緩存文件
   // 如果有修改核心文件請刪除該緩存(PHP100.com)
   require_once RUNTIME_PATH.~runtime.php;
}else{
   // 加載系統定義文件
   require_once THINK_PATH."/Common/defines.php";
   // 系統函數庫
   require_once THINK_PATH."/Common/functions.php";
   // 加載編譯需要的函數文件
   require_once THINK_PATH."/Common/runtime.php";
   // 第一次運行檢查項目目錄結構 如果不存在則自動創建
   if(!file_exists(RUNTIME_PATH)) {
       // 創建項目目錄結構
       buildAppDir();
   }

   //加載ThinkPHP基類
   import("Think.Core.Base");

   //加載異常處理類
   import("Think.Exception.ThinkException");

   // 加載日志類
   import("Think.Util.Log");

   //加載Think核心類
   import("Think.Core.App");

   import("Think.Core.Action");

   import("Think.Core.Model");

   import("Think.Core.View");

   // 是否生成核心緩存
   $cache =  ( !defined(CACHE_RUNTIME) || CACHE_RUNTIME == true );
   if($cache) {
       if(defined(STRIP_RUNTIME_SPACE) && STRIP_RUNTIME_SPACE == false ) {
           $fun   =  file_get_contents;
       }else{
           $fun   =  php_strip_whitespace;
       }
       // 生成核心文件的緩存 去掉文件空白以減少大小
       $content    =  $fun(THINK_PATH./Common/defines.php);
       $content   .=  $fun(THINK_PATH./Common/functions.php);
       $content   .=  $fun(THINK_PATH./Lib/Think/Core/Base.class.php);
       $content   .=  $fun(THINK_PATH./Lib/Think/Exception/ThinkException.class.php);
       $content   .=  $fun(THINK_PATH./Lib/Think/Util/Log.class.php);
       $content   .=  $fun(THINK_PATH./Lib/Think/Core/App.class.php);
       $content   .=  $fun(THINK_PATH./Lib/Think/Core/Action.class.php);
       $content   .=  $fun(THINK_PATH./Lib/Think/Core/Model.class.php);
       $content   .=  $fun(THINK_PATH./Lib/Think/Core/View.class.php);
   }
   if(version_compare(PHP_VERSION,5.2.0,<) ) {
       // 加載兼容函數
       require_once THINK_PATH./Common/compat.php;
       if($cache) {
           $content .= $fun(THINK_PATH./Common/compat.php);
       }
   }
   if($cache) {
       file_put_contents(RUNTIME_PATH.~runtime.php,$content);//將字符串寫入文件
       unset($content);//銷毀$content
   }
}
// 記錄加載文件時間
$GLOBALS[_loadTime] = microtime(TRUE);
?>

 

發佈留言