ThinkPHP有非常多的功能庫,我的學習策略很明確:不貪多求全,只掌握最核心的20%功能,解決80%的業務需求。所有學習都圍繞一個目標:夠用就行。遇到復雜問題時,再具體學習對應的內容。
作為ThinkPHP學習的第一篇文章,本篇文章將記錄ThinkPHP基礎內容的學習,包括:安裝、目錄結構與配置。
一、安裝
ThinkPHP 8.x 要求 PHP 的版本要大于等于 8.0.0。
1、安裝 Composer
Composer 是 PHP 用來管理依賴(dependency)關系的工具。可以在自己的項目中聲明所依賴的外部工具庫(libraries),Composer 會幫你安裝這些依賴的庫文件。稍后會使用 Composer 來安裝 ThinkPHP。
在 phpStudy 中安裝 Composer 是非常簡單的,只需要在軟件管理中找到它,然后點擊安裝即可。我這里選擇的是可以安裝的最新的 2.5.8 版本。
2、安裝穩定版?
第一次安裝,在命令行下面,切換到WEB根目錄下面并執行下面的命令:
composer create-project topthink/think 應用名稱
該命令將創建應用根目錄,目錄名稱就是應用名稱。
如果之前已經安裝過 8.0 版本,那么切換到該應用根目錄下面,然后執行下面的命令進行更新:
composer update
在 phpStudy 中,點擊 網站->管理->composer,會彈出 composer設置 對話框,它會自動選中當前安裝的 composer 版本,然后點擊 “確認” 按鈕,就會打開命令行界面,且該命令行界面已經切換到WEB根目錄下。
在打開的命令行界面中,我們輸入安裝 ThinkPHP 命令,創建第一個應用,應用命名為:first_tp:?
composer create-project topthink/think first_tp
3、開啟調試模式
應用默認是部署模式,在開發階段,通過修改環境變量APP_DEBUG開啟調試模式,上線部署后切換到部署模式。
通過 create-project 安裝后在根目錄會自帶一個.example.env文件(環境變量示例),我們需要將該文件更名為 .env 文件并根據要求進行修改,該示例文件已經開啟調試模式。所以我們現在需要做的就是將該文件更名為 .env 文件就可以了。
4、測試運行
現在要做最后一步來是驗證能否正常運行。該步操作還是在命令行中執行,具體如下:
cd first_tp # 首先進入 ThinkPHP 應用根目錄
php think run # 執行該命令啟動 ThinkPHP 應用
執行完成命令后,會在啟動消息中看到服務器的訪問地址,默認為:http://localhost:8000。訪問該地址,如果看到了歡迎頁面,那證明安裝成功了。
也可以通過 -p 參數來更改默認啟動的端口號:
php think run -p 端口號
注意:在實際部署中,需要綁定域名訪問到 ThinkPHP 應用根目錄下的 public 目錄。
在 ThinkPHP 官網文檔中,提供了關于 ThinkPHP 的開發規范,關于開發規范的內容在本文中就不做記錄了,可以通過官網 開發規劃 進行查看。
二、目錄結構
ThinkPHP 8.0 版本開始支持多應用模式部署,所以實際的目錄結構取決于采用的是單應用還是多應用模式,默認安裝后的目錄結構就是一個單應用模式。本文將記錄單應用模式。下面我們一起來看下單應用模式的目錄結構。
www WEB部署目錄(或者子目錄)
├─app 應用目錄
│ ├─controller 控制器目錄
│ ├─model 模型目錄
│ ├─ ... 更多類庫目錄
│ │
│ ├─common.php 公共函數文件
│ └─event.php 事件定義文件
│
├─config 配置目錄
│ ├─app.php 應用配置
│ ├─cache.php 緩存配置
│ ├─console.php 控制臺配置
│ ├─cookie.php Cookie配置
│ ├─database.php 數據庫配置
│ ├─filesystem.php 文件磁盤配置
│ ├─lang.php 多語言配置
│ ├─log.php 日志配置
│ ├─middleware.php 中間件配置
│ ├─route.php URL和路由配置
│ ├─session.php Session配置
│ ├─trace.php Trace配置
│ └─view.php 視圖配置
│
├─view 視圖目錄
├─route 路由定義目錄
│ ├─route.php 路由定義文件
│ └─ ...
│
├─public WEB目錄(對外訪問目錄)
│ ├─index.php 入口文件
│ ├─router.php 快速測試文件
│ └─.htaccess 用于apache的重寫
│
├─extend 擴展類庫目錄
├─runtime 應用的運行時目錄(可寫,可定制)
├─vendor Composer類庫目錄
├─.example.env 環境變量示例文件
├─composer.json composer 定義文件
├─LICENSE.txt 授權說明文件
├─README.md README 文件
├─think 命令行入口文件
默認安裝后,app目錄下會包含下面的文件。
├─app 應用目錄
│ │
│ ├─BaseController.php 默認基礎控制器類
│ ├─ExceptionHandle.php 應用異常定義文件
│ ├─common.php 全局公共函數文件
│ ├─middleware.php 全局中間件定義文件
│ ├─provider.php 服務提供定義文件
│ ├─Request.php 應用請求對象
│ └─event.php 全局事件定義文件
?BaseController.php、Request.php 和 ExceptionHandle.php 三個文件是系統默認提供的基礎文件,位置可以隨意移動,但注意要同步調整類的命名空間。如果不需要使用 Request.php 和 ExceptionHandle.php文件,或者要調整類名,記得必須同步調整 provider.php 文件中的容器對象綁定。
provider.php 服務提供定義文件只能全局定義,不支持在應用下單獨定義。
三、配置?
對于單應用模式來說,配置文件和目錄很簡單,根目錄下的 config 目錄下面就是所有的配置文件。每個配置文件對應不同的組件,當然也可以增加自定義的配置文件。
├─config(配置目錄)
│ ├─app.php 應用配置
│ ├─cache.php 緩存配置
│ ├─console.php 控制臺配置
│ ├─cookie.php Cookie配置
│ ├─database.php 數據庫配置
│ ├─filesystem.php 文件磁盤配置
│ ├─lang.php 多語言配置
│ ├─log.php 日志配置
│ ├─middleware.php 中間件配置
│ ├─route.php URL和路由配置
│ ├─session.php Session配置
│ ├─trace.php Trace配置
│ ├─view.php 視圖配置
│ └─ ... 更多配置文件
│
單應用模式的 config 目錄下的所有配置文件系統都會自動讀取,不需要手動加載。如果存在子目錄,需要通過 Config 類的 load 方法手動加載,例如:
// 加載config/extra/config.php 配置文件 讀取到extra
\think\facade\Config::load('extra/config', 'extra');
可以直接在相應的全局或應用配置文件中修改或者增加配置參數,如果要增加額外的配置文件,直接放入配置目錄即可(文件名小寫)。