首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

ThinkPHP 3.2 Lite 編譯檔案替換入口檔案提升效能實作指南

     編輯:PHP 綜合知識

前言

ThinkPHP 3.2 引入「Lite 編譯檔」機制,將框架核心類別、常用函式、設定檔等編譯合併為單一 lite.php,替換原本需載入數十個檔案的入口流程,大幅減少 I/O 操作,提升執行效能。本文詳細說明產生、自訂與替換流程。

一、啟用並產生 Lite 檔案

1. 入口檔案加入常數定義

在專案入口檔(通常為 index.php)最上方加入:

<?php
define('BUILD_LITE_FILE', true);
// 原本的框架入口引入
require './ThinkPHP/ThinkPHP.php';

2. 執行一次請求

瀏覽器訪問首頁,框架偵測到常數會在 Runtime/ 目錄自動產生 lite.php。

3. 關閉調試模式再產生(重要)

建議先在入口檔關閉調試模式,確保編譯內容為正式環境最佳化:

define('APP_DEBUG', false);  // 關閉調試
define('BUILD_LITE_FILE', true);
require './ThinkPHP/ThinkPHP.php';

二、自訂 Lite 檔案儲存路徑與編譯清單

1. 修改儲存位置

在應用設定檔 Conf/config.php 加入:

'RUNTIME_LITE_FILE' => APP_PATH . 'lite.php',  // 存放於應用目錄下

2. 自訂編譯清單(進階)

在應用設定目錄建立 Conf/lite.php,回傳需編譯的檔案陣列:

<?php
return [
    THINK_PATH . 'Common/functions.php',
    COMMON_PATH . 'Common/function.php',
    CORE_PATH . 'Think' . EXT,
    CORE_PATH . 'Hook' . EXT,
    CORE_PATH . 'App' . EXT,
    CORE_PATH . 'Dispatcher' . EXT,
    CORE_PATH . 'Model' . EXT,
    CORE_PATH . 'Log' . EXT,
    CORE_PATH . 'Log/Driver/File' . EXT,
    CORE_PATH . 'Route' . EXT,
    CORE_PATH . 'Controller' . EXT,
    CORE_PATH . 'View' . EXT,
    CORE_PATH . 'Storage' . EXT,
    CORE_PATH . 'Storage/Driver/File' . EXT,
    CORE_PATH . 'Exception' . EXT,
    BEHAVIOR_PATH . 'ParseTemplateBehavior' . EXT,
    BEHAVIOR_PATH . 'ContentReplaceBehavior' . EXT,
    // 可依專案需求增減
];

所有列入清單的檔案將被合併進 lite.php,未列入的類別仍維持自動載入機制。

三、替換入口檔案

方案 A:替換框架入口引用(推薦)

保留原入口檔邏輯,僅改變引入目標:

<?php
// 原本
// require './ThinkPHP/ThinkPHP.php';

// 改為載入 Lite 編譯檔
require './Runtime/lite.php';  // 或依 RUNTIME_LITE_FILE 設定路徑

此時框架不再產生應用編譯快取,效能顯著提升。

方案 B:直接以 lite.php 作為入口檔

若入口檔無其他邏輯,可直接複製 lite.php 並更名為 index.php 放於公開目錄,原入口檔備份留存以便重新產生。

四、注意事項與維護

  • 修改核心/設定後需重新產生: 變更框架核心檔、應用公用函式、設定檔後,必須刪除舊 lite.php 並重新啟用 BUILD_LITE_FILE 產生新版。
  • SAE 等雲平台不支援: 因禁止寫入檔案系統,無法直接產生 Lite 檔,需在本地產生後部署。
  • 目錄結構變更需重編譯: 專案遷移、路徑調整皆需重新產生。

五、效能實測參考

典型專案啟用 Lite 後:

  • 檔案載入數從 50+ 降至 1-2 個
  • 首頁回應時間縮減 30%-50%
  • 記憶體使用量略微下降

小結

ThinkPHP 3.2 Lite 編譯是零程式碼修改即可獲得效能提升的實用功能。生產環境部署流程建議加入「產生 Lite → 替換入口 → 驗證功能」三步驟,並納入自動化部署腳本,確保每次釋出皆為最佳化版本。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved