站長推薦學習ThinkPHP6.0 入門必讀
2023-01-04 加入收藏
ThinkPHP6.0
是基于現代主流開發思想而設計的全新架構版本,集簡單、規范、優雅和性能于一身,是今后很長一段時間主要維護的版本。
在學習ThinkPHP6.0
之前,你必須要掌握的技能包括:
PHP7
基礎知識:新版基于PHP7.1+
開發,運用了很多PHP7的新特性;composer
安裝和使用:新版必須通過Composer
才能安裝;運行環境安裝:運行環境是一道學習的門檻;
面向對象編程(OOP)思想:思想入門比代碼入門更為關鍵;
本書內容包含三個部分:
入門必讀: 快速了解
6.0
的功能使用代碼規范: 開發規范以及代碼建議
常見問題: 新手的常見問題整理
6.0
主要新特性采用
PHP7
強類型(嚴格模式)支持更多的
PSR
規范多應用支持
ORM
組件獨立改進的中間件機制
更強大和易用的查詢
全新的事件系統
支持容器
invoke
回調模板引擎組件獨立
內部功能中間件化
SESSION機制改進
緩存及日志支持多通道
引入
Filesystem
組件對
Swoole
以及協程支持改進對IDE更加友好
統一和精簡大量用法
在主流框架里面,ThinkPHP
6.0
是最先采用PHP7嚴格模式的。但強類型本身也是一把雙刃劍,如果不能很好駕馭,可能會非常被動,所以強烈建議新手首先去惡補下PHP7的強類型,以免被強類型弄得暈頭轉向的。
所有的核心文件都是開啟了嚴格模式的類型約束,因此有任何的變量類型不符的情況都會拋出異常,有利于規范代碼中的變量類型和提前發現問題隱患。我們也建議你的項目文件也同樣開啟嚴格模式,只需要在你的PHP文件開頭增加下面一行代碼。
declare (strict_types = 1);
更規范
規范兩個字看起來很簡單,實則有如打通任督二脈一般至關重要。由于采用了Composer依賴開發和功能組件化,核心的每個組件更易維護和更新,也更方便擴展和替換核心功能。每個組件和接口都提供了相應的規范,或者是遵守了某些規范,諸如PSR
之類。
對于數據庫、日志、緩存及Session
等組件都提供了契約接口,很容易擴展。
此次精簡和統一了原有版本某個功能的多種用法,使得團隊開發制定規范的時候更容易和避免濫用。
規范的另外一層含義是不允許對框架指定的規則進行破壞,所以你會看到很多原本可以支持的新版里面不再進行支持了,一方面是這些功能都不再建議使用,另外一方面可能是禁止濫用而破壞規范和統一性。
更強大
雖然核心精簡了,但不代表系統的功能減弱了,底層架構的設計其實是變復雜了,外表看起來越是易用的其實內部架構越是復雜,新版完全重新設計了框架的底層架構,考慮到了HTTP以及命令行,以及各種長連接及協程的支持,事實上由于中間件、系統服務和事件機制的引入,使核心功能變得更易擴展,很多原本內置的功能都已經改成中間件的方式即“插”即用,當不需要的時候可以很容易關閉而不會影響系統的性能。
通過注冊服務可以讓系統變得更靈活和易擴展。分層的中間件執行機制,讓中間件變得更有層次,可以更好的確保中間件的執行優先次序。而事件的觀察者和訂閱機制,儼然就是一個項目解耦神器。
更易用
一個框架如果喪失了易用性這一前提,哪怕功能再強大也難成大器。新版盡量減少一些不必要的配置,并且改進了一些更為直觀的配置定義。助手函數、IDE助手、注解擴展、調試工具、異常頁面的諸多細節改善都體現了一個框架的易用性。
關于安裝
6.0
版本基于PHP7.1
版本開發,所以你的PHP運行環境必須是PHP7.1+
(注意有時候你的命令行和WEB的PHP版本是不同的),最新版本已經兼容PHP8.0
。
新版必須使用
composer
安裝,因為6.0
完全依賴composer
使用,如果你通過git下載安裝將不能正常使用。如果你使用composer
安裝ThinkPHP過程特別慢,請使用阿里云鏡像或者科學上網。
對于新手而言,推薦的安裝方式是
composer create-project topthink/think tp
系統會自動為你生成一個項目所需要的目錄架構和需要的文件。
記住,無論如何,不要在項目里面修改核心框架目錄下的任何文件,除了vendor
目錄之外的其它目錄都屬于你的項目代碼,可以隨意修改。
安裝完成之后,進入cmd
控制臺,使用內置指令啟動服務。
cd tpphp think run
現在你可以開始你的TP6開發之旅了。
在瀏覽器里面輸入
http://localhost:8000
就會看到熟悉的歡迎頁面(并顯示當前安裝的版本號)
如果需要更改默認端口,可以使用
php think run -p 80
請確保端口沒有被占用。
目錄結構
默認安裝后的目錄結構如下:
www WEB部署目錄(或者子目錄)
├─app 應用目錄
│ ├─controller 控制器目錄
│ ├─common.php 公共函數文件
│ ├─event.php 事件定義文件
│ ├─ExceptionHandle.php應用異常處理類
│ ├─middleware.php 全局中間件定義文件
│ ├─provider.php 容器綁定定義文件
│ └─Request.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 命令行入口文件
本文僅搬運最基本的介紹,更詳細的入門知識,我已經購買了文檔,還在學習中,后期更新吧。