Day1-從基礎學習 ThinkPHP-介紹
前言
ThinkPHP 算是比較少見的框架,我會挑選 ThinkPHP 當作是一個挑戰是因為先前有寫過(被打),但是當時寫的版本是 3.2.4,而目前版本是 5.1,這段過程 ThinkPHP 其實有非常大的改變,光系統架構上就差非常多,那麼廢話就不多說讓我們從基礎來學習 ThinkPHP 5.1 吧!
ThinkPHP 介紹
先前我所接觸 ThinkPHP 版本是 3.2.4,當時寫完的感受就是非常適合新手的一個框架,但是有些語法上是真的太過於簡潔導致開發上有許多困擾,例如跨控制器呼叫的寫法 R("Public/Header");
以及 Model 實例話是 M("User");
,如果不查開發者手冊真的會不知道 R()
& M()
這兩個方法到底是什麼神奇的東東,但是基本上只要看完官方所提供的開發者手冊你就可以做出一個網站沒問題。
後來 ThinkPHP 官方為了讓系統可以支援 PHP 7.0 以上,所以在 ThinkPHP 5 的時候將整個系統架構大翻修,個人覺得如果是稍微寫過 Laravel 的人可能會覺得有點神似(系統核心是參考 Laravel),那麼 ThinkPHP LTS 現行版是 5.1,雖然目前最新版是 6.0 (聽說 6.0 又有重購,但我沒有特別研究),可是還是有些許問題,所以本篇系列將會集中介紹 ThinkPHP 5.1 唷~
另外這邊也附上 ThinkPHP 官方的 GitHub 提供給各位。
最後官方也有提供 ThinkPHP 完全開發手冊(是中文的唷!),如果你的英文程度跟我一樣差,不妨可以嘗試學習這個框架看看,基本上當你學會一個框架後再去看其他框架,其實你會發現滿多雷同的地方。
環境要求 & 安裝
- PHP 5.6+
- ThinkPHP 5.1 環境要求在 PHP 5.6 以上,所以如果你是 PHP 5.6 以下是無法使用的唷~
- composer
- 本篇文章將會採用 composer 來安裝 ThinkPHP 5.1。
- XAMPP 7.x.x 以上皆可
- 因為 XAMPP 內建有 MariaDB。
我的開發環境
另外我這邊提供我的開發環境給予參考。
- 作業系統 - Windows 10 x64
- XAMPP - 7.3.8
- PHP - 7.3.8
- phpMyAdmin - 4.9.0.1
- Apache - 2.4.39
- MariaDB - 10.4.6
另外這邊補充一個非常非常微小的雷點,如果你電腦裡面有安裝 VMWare 記得要開啟工作管理員把 vmware-hostd.exe
停止運作,否則你可能會發生 Apache 打不開的窘事,使用 XAMPP 來開發的好處就是錯誤訊息都會直接陳列在下方加快我們排除 ↓
章節大綱
由於我們將會從基礎 SQL 學習一個框架,所以將會從基礎 SQL 語法到學習使用 ThinkPHP 框架,當然本系列可能不會依照順序來做撰寫,中間會發生穿插一些基礎混搭介紹學習,這樣子就可以看出原生語法與官方所提供的函式庫上的差異唷~
另外本篇建議要有基礎的程式語言基礎,只要你知道 if
、for
、foreach
這幾種語法,那麼大致上就沒有甚麼問題哩。
- 安裝 XAMPP (這邊我並不會多做介紹,可以參考其他前輩所撰寫的文章來安裝即可 :D)
- 基礎 SQL 指令
- ThinkPHP 安裝
- ThinkPHP 目錄結構
- 基本 MVC 觀念
- ThinkPHP MVC
- 主要會介紹如何定義基礎 Model、View、Controller。
- ThinkPHP Route
- ThinkPHP Model 基礎操作
- ThinkPHP 原生 SQL 語法撰寫
- ThinkPHP Layout
- 引入第三方資源
- 將會介紹該如何引入第三方資源,如 Bootstrap、jQuery。
- ThinkPHP 內建標籤
- ThinkPHP 表單驗證
- ThinkPHP 表單 Token
- ThinkPHP 驗證碼
- 使用 ThinkPHP 製作一個會員登入登出以及註冊功能 & 留言版系統
- 這一篇主要講解規劃,所以不會有太多程式碼介紹,但是最後章節將會附上 GitHub 連結。
- ThinkPHP 基礎指令
- 內容雖然是介紹 ThinkPHP 基礎指令,但是最主要是介紹
think-migration
的使用方法。
- 內容雖然是介紹 ThinkPHP 基礎指令,但是最主要是介紹
- 將 ThinkPHP 部屬至 Heroku
- 主要會介紹如何將 ThinkPHP 部屬至 Heroku,但是也會講我部屬時遇到的一些雷點解決方法。
而這一整個系列文章也將會同步更新於我的部落格 → 是 Ray 不是 Array。
如果文章中有不正確的地方就請多多指教了~
(撰寫之前一直煩惱這個章節大綱會不會很不 OK QQ)
結尾
本來報名的時候主題名稱是想寫 [替自己學一個框架],但是感覺主題有點不是很好,在字面上怕會讓人家覺得我會介紹很多種框架的感覺,所以思考大概兩個禮拜後就決定將主題定案為 [從基礎學習 ThinkPHP],那麼接下來就讓我們從基礎 SQL 指令來替自己學習一個框架吧 :D