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

ThinkPHP 3.1 學習筆記(一):框架目錄結構、入口文件、項目自動生成與部署佈局

     編輯:PHP 相關知識

ThinkPHP 3.1 學習筆記(一):框架目錄結構、入口文件、項目自動生成與部署佈局

ThinkPHP 作為國產 PHP 框架的佼佼者,以簡單易用、文檔豐富著稱。本文記錄從零開始理解框架目錄、入口文件機制、項目目錄自動生成及生產部署佈局的完整過程。

1. 框架核心目錄結構解析

解壓框架包後,核心目錄佈局如下:

ThinkPHP/
├── ThinkPHP.php          # 框架入口文件(不能直接運行,需被項目入口引用)
├── Common/               # 框架公共函數/常量定義
├── Conf/                 # 框架默認配置(慎改,項目層覆蓋)
├── Extend/               # 框架擴展目錄(類庫、驅動等)
├── Lang/                 # 核心語言包
├── Lib/                  # 核心類庫(框架心臟)
│   ├── Behavior/         # 核心行為類庫(AOP切面)
│   ├── Core/             # 核心基類(Controller, Model, View...)
│   ├── Driver/           # 內置驅動
│   │   ├── Cache/        # 緩存驅動
│   │   ├── Db/           # 數據庫驅動
│   │   ├── TagLib/       # 標簽驅動
│   │   └── Template/     # 模板引擎驅動
│   └── Template/         # 內置模板引擎
└── Tpl/                  # 系統默認模板

關鍵認知:ThinkPHP.php 是引導文件,而非運行入口。它負責初始化常量、註冊自動加載、啟動應用。

2. 項目入口文件:一切的開始

<?php
// 最簡單的入口文件(通常命名為 index.php)
require '/ThinkPHP框架所在目錄/ThinkPHP.php';

執行此文件將啟動框架,但尚無項目結構。

3. 項目目錄自動生成機制

將入口文件放置於項目根目錄(如 /var/www/app/index.php)並訪問,框架會自動生成標準項目目錄:

app/                    # 項目根目錄
├── index.php           # 項目入口文件
├── Common/             # 項目公共函數/配置
├── Conf/               # 項目配置 (config.php, db.php...)
├── Lang/               # 項目語言包
├── Lib/                # 項目類庫 (核心業務代碼)
│   ├── Action/         # 控制器類
│   ├── Behavior/       # 行為擴展
│   ├── Model/          # 模型類
│   └── Widget/         # 組件類
├── Runtime/            # 運行時緩存 (需寫入權限)
│   ├── Cache/          # 模板緩存
│   ├── Data/           # 數據緩存
│   ├── Logs/           # 日誌文件
│   └── Temp/           # 臨時緩存
└── Tpl/                # 項目模板

原理:框架檢測 APP_PATH 常量未定義時,以入口文件所在目錄為項目根目錄自動創建上述結構。

4. 生產部署優化:入口文件外移與常量定義

為了安全與清晰,建議將入口文件移至項目目錄外層(Web 根目錄),並顯式定義常量:

/var/www/               # Web 服務器文檔根目錄
├── index.php           # 公開入口文件
└── app/                # 項目代碼目錄 (非公開,防止源碼洩露)
<?php
// /var/www/index.php
define('APP_NAME', 'app');           // 項目名稱
define('APP_PATH', './app/');        // 項目目錄相對路徑
require './ThinkPHP框架所在目錄/ThinkPHP.php';

優勢:

  • 核心代碼、配置、模板、運行時緩存全部位於 Web 根目錄之外,天然防止直接訪問洩露。
  • 多項目部署時,可在 Web 根目錄建立多個入口文件指向不同 APP_PATH。
  • 便於版本控制:app/ 納入 Git,Runtime/ 加入 .gitignore。

5. 核心常量速查表

常量默認值說明
THINK_PATH框架目錄框架核心路徑
APP_PATH入口文件目錄項目應用路徑
APP_NAMEapp項目名稱
RUNTIME_PATHAPP_PATH/Runtime/運行時緩存路徑
CONF_PATHAPP_PATH/Conf/配置文件路徑
LIB_PATHAPP_PATH/Lib/類庫路徑

總結

ThinkPHP 3.1 通過 入口文件引導 + 自動目錄生成 + 常量約定 三大機制,實現了「零配置啟動、約定優於配置」的開發體驗。掌握目錄分層邏輯與入口文件外移部署,是從「能跑通」走向「工程化交付」的關鍵一步。

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