ThinkPHP 簡(jiǎn)介
1. ThinkPHP 介紹
ThinkPHP 是一個(gè)免費(fèi)開(kāi)源的,快速、簡(jiǎn)單的面向?qū)ο蟮妮p量級(jí) PHP 開(kāi)發(fā)框架,是為了敏捷 WEB 應(yīng)用開(kāi)發(fā)和簡(jiǎn)化企業(yè)應(yīng)用開(kāi)發(fā)而誕生的。
ThinkPHP 從誕生以來(lái)一直秉承簡(jiǎn)潔實(shí)用的設(shè)計(jì)原則,在保持出色的性能和至簡(jiǎn)代碼的同時(shí),更注重易用性。遵循 Apache2 開(kāi)源許可協(xié)議發(fā)布,意味著你可以免費(fèi)使用 ThinkPHP,甚至允許把你基于 ThinkPHP 開(kāi)發(fā)的應(yīng)用開(kāi)源或商業(yè)產(chǎn)品發(fā)布/銷售。
2. 為什么要學(xué)習(xí) ThinkPHP?
對(duì)于剛開(kāi)始學(xué)習(xí) PHP 的初級(jí)程序員來(lái)說(shuō),把基礎(chǔ)的 PHP 知識(shí)掌握之后,就需要進(jìn)階到框架層面的知識(shí)了。ThinkPHP 框架上手容易,學(xué)習(xí)資料豐富,對(duì)新手朋友來(lái)說(shuō)非常友好。
ThinkPHP 采用 MVC 思想開(kāi)發(fā)的,它的主要活躍社區(qū)在國(guó)內(nèi),免費(fèi)開(kāi)源,其配置開(kāi)發(fā)相對(duì)容易、迅捷,非常適合新手的 PHP 框架。ThinkPHP 是一個(gè)輕量級(jí)的開(kāi)發(fā)框架(比較小,僅提供一部分功能,可拓展很多第三方功能),學(xué)習(xí) ThinkPHP 之后,可以快速發(fā)開(kāi)一些中小型項(xiàng)目,并且能對(duì) PHP 語(yǔ)言基礎(chǔ)有更深入的理解。
作為一個(gè)整體開(kāi)發(fā)解決方案,ThinkPHP 能夠解決應(yīng)用開(kāi)發(fā)中的大多數(shù)需要,因?yàn)槠渥陨戆?strong>底層架構(gòu)、兼容處理、基類庫(kù)、數(shù)據(jù)庫(kù)訪問(wèn)層、模板引擎、緩存機(jī)制、插件機(jī)制、角色認(rèn)證、表單處理等常用的組件,并且對(duì)于跨版本、跨平臺(tái)和跨數(shù)據(jù)庫(kù)移植都比較方便。
3. ThinkPHP 版本說(shuō)明
本套教程學(xué)習(xí)將使用最新 ThinkPHP6.0 版本,課程將會(huì)以實(shí)際操作結(jié)合理論知識(shí)由淺入深進(jìn)行學(xué)習(xí)。學(xué)習(xí)完本套教程之后你將會(huì)掌握 ThinkPHP 框架的基礎(chǔ)知識(shí),并且對(duì) ThinkPHP 框架有了更深入的理解。
最后會(huì)結(jié)合本套學(xué)習(xí)的基礎(chǔ)知識(shí)完成一個(gè)簡(jiǎn)單的功能項(xiàng)目,它是基于現(xiàn)代主流開(kāi)發(fā)思想而設(shè)計(jì)的全新架構(gòu)版本,集簡(jiǎn)單規(guī)范、優(yōu)雅和性能于一身,是今后很長(zhǎng)一段時(shí)間主要維護(hù)的版本。
4. ThinkPHP6.0 特點(diǎn)
- 從 ThinkPHP6.0 版本開(kāi)始,必須通過(guò)
Composer
方式安裝和更新,無(wú)法通過(guò)Git
下載安裝; - ThinkPHP6.0 遵循
PSR-2
命名規(guī)范和PSR-4
自動(dòng)加載規(guī)范; - 目錄使用小寫(xiě) + 下劃線;
- 類庫(kù)、函數(shù)文件統(tǒng)一以
.php
為后綴; - 類的文件名均以命名空間定義,并且命名空間的路徑和類庫(kù)文件所在路徑一致;
- 類(包含接口和
Trait
)文件采用駝峰法命名(首字母大寫(xiě)),其它文件采用小寫(xiě) + 下劃線命名; - 類名(包括接口和
Trait
)和文件名保持一致,統(tǒng)一采用駝峰法命名(首字母大寫(xiě)); - 類的命名采用駝峰法(首字母大寫(xiě)),例如
User
、UserType
; - 函數(shù)的命名使用小寫(xiě)字母和下劃線(小寫(xiě)字母開(kāi)頭)的方式,例如
get_client_ip
; - 方法的命名使用駝峰法(首字母小寫(xiě)),例如
getUserName
; - 屬性的命名使用駝峰法(首字母小寫(xiě)),例如
tableName
、instance
; - 特例:以雙下劃線
__
打頭的函數(shù)或方法作為魔術(shù)方法,例如__call
和__autoload
; - 常量以大寫(xiě)字母和下劃線命名,例如
APP_PATH
; - 配置參數(shù)以小寫(xiě)字母和下劃線命名,例如
url_route_on
和url_convert
; - 環(huán)境變量定義使用大寫(xiě)字母和下劃線命名,例如
APP_DEBUG
; - 數(shù)據(jù)表和字段采用小寫(xiě)加下劃線方式命名,并注意字段名不要以下劃線開(kāi)頭,例如
think_user
表和user_name
字段,不建議使用駝峰和中文作為數(shù)據(jù)表及字段命名。
5. ThinkPHP 與同類型框架對(duì)比
5.1 ThinkPHP 優(yōu)缺點(diǎn)
ThinkPHP 優(yōu)點(diǎn):
- 易于上手,有豐富的中文文檔
- 學(xué)習(xí)成本低,社區(qū)活躍度高
- 框架的兼容性較強(qiáng),完全支持 UTF8 等
- 適合用于中小項(xiàng)目的開(kāi)發(fā)
- 引入 composer 包管理工具
- 借助成熟的 JAVA 思想
ThinkPHP 缺點(diǎn):
- 上手容易,但是深入學(xué)習(xí)較難
- 相比其他框架目錄結(jié)構(gòu)要差一點(diǎn)
5.2 Laravel 優(yōu)缺點(diǎn)
Laravel 優(yōu)點(diǎn):
- Laravel 的設(shè)計(jì)思想是很先進(jìn)的,非常適合應(yīng)用各種開(kāi)發(fā)模式 TDD、 DDD 和 BDD
- 支持 composer 包管理工具
- 集合了php 比較新的特性,以及各種各樣的設(shè)計(jì)模式,Ioc 容器,依賴注入等
- 全球大量活躍的用戶
Laravel 缺點(diǎn):
- 基于組件式的框架,比較臃腫
- 英文社區(qū),閱讀相關(guān)資料需具備一定英文基礎(chǔ)
5.3 Yii 優(yōu)缺點(diǎn)
Yii 優(yōu)點(diǎn):
- 純 OOP
- 用于大規(guī)模 Web 應(yīng)用
- 模型使用方便
- 開(kāi)發(fā)速度快,運(yùn)行速度也快。性能優(yōu)異且功能豐富
- 使用命令行工具
- 支持 composer 包管理工具
Yii缺點(diǎn):
- 文檔實(shí)例較少
- 英文太多,閱讀相關(guān)資料需具備一定專業(yè)英文基礎(chǔ)
- 要求 PHP 的面向?qū)ο缶幊趟枷胍炀?/li>
6. 學(xué)習(xí)基礎(chǔ)
學(xué)習(xí)本套教程之前您需要先了解以下幾點(diǎn):
- 掌握 PHP7 基礎(chǔ)知識(shí),ThinkPHP6.0 基于基于PHP7.1+開(kāi)發(fā),運(yùn)用了很多PHP7的新特性;
- 在學(xué)習(xí)本套教程之前需要搭建好 LNMP 運(yùn)行環(huán)境;
- 掌握基本的 Linux 命令操作;
- 掌握 MySQL 的基礎(chǔ)知識(shí);
- 掌握面向?qū)ο缶幊蹋∣OP)思想。
7. 小結(jié)
本節(jié)課介紹了 ThinkPHP 框架的應(yīng)用范圍,介紹了 ThinkPHP 框架兩個(gè)版本的新特性,并對(duì) ThinkPHP、Laravel、Yii 框架做了簡(jiǎn)單的對(duì)比。
對(duì)于剛?cè)腴T(mén)的 PHP 程序員來(lái)說(shuō),ThinkPHP 框架是最適合學(xué)習(xí)的一款 MVC 框架,但在學(xué)習(xí)本套教程之前需要掌握 PHP 基礎(chǔ)知識(shí)、Linux 基礎(chǔ)知識(shí)、MySQL 基礎(chǔ)知識(shí)。
Tips:想要學(xué)習(xí)更多 ThinkPHP 相關(guān)知識(shí),可以點(diǎn)擊
Excel 導(dǎo)入學(xué)生信息
Excel 導(dǎo)出學(xué)生信息
后臺(tái)處理數(shù)據(jù)