PHP框架導入前必備技能學習
PHP天生是 Web 開發的好語言,社群也十分活絡,最新版本也來到7.X了,但 20 多年的包袱,畢竟稱不上優雅,於是各種框架如雨後春筍般的出現要捨棄傳統開發方式,終於 Laravel 的出現似乎有一統江湖的趨勢。在傳統的 PHP Programmer 邁向框架之前還是有一些前導知識必須學習,末學將透過每月二次的資訊義工團 PHP 共學與大家一同探討此一主題,並將之紀錄下來。
使用框架的評估
事實上如果是小型專案,或者開發者就一兩位,其實使用一般PHP元件即可,保持靈活及彈性。如果是多人或大型專案,則建議用框架,以利統一開發標準,及後續的維護,就讓我們一起來看看導入框架的優缺點有哪些?
優點
框架幫我們把一些重複的且已經受過驗證的模式,抽象到一個已經設計好的API封裝當中,幫助開發者快速開發。
規範了專案的目錄結構,什麼樣的程式要放哪個目錄都一清二楚,不會10個人開發,有10種不同的資料夾結構。
使用相同框架的程式或專案,都有相同的函式名稱、相同的資料結構,維護接手不會看不懂,也有助於多人協做開發。
框架已考慮 XSS 與各種 Injection 攻擊,安全性提高。
框架使用ORM模擬物件資料庫,可不使用 sql 語法,切換異質資料庫時只需更動 driver ,程式碼部分無須改寫。
缺點
框架初期學習需花比較多的時間與精力
框架更新頻繁,要追新版本比較累人,網路文章參考的版本與自己使用的常常不同,建議使用長期支援LTS版比較好
框架分層處理,檔案較多,存取效能較差,建議使用較強大的伺服器並改用 PHP7來安裝框架
框架有變成孤兒的風險
框架缺乏的功能需自行尋求整合及解決方式
會抓老鼠的就是好貓,在小型專案與開發人數過少的情況下,也不一定要導入框架開發。
前導知識與觀念
框架試圖將 Web 開發上常用到的良好建構模式,整理成可重複利用的 API ,因應框架會用到許多現代開發觀念與新版本的 PHP 特性,末學嘗試整理出以下前導知識與觀念與大家共學:
版本管控:Git、Github
後端套件管理:Composer 、Packagist
前端套件管理:yarn
資料表存取物件化:Pixie Query Builder
防止XSS與SQL injection攻擊:filter_var、PDO
使用版型(前後端分離):twig
進階議題
前端組件與雙向繫結:vue.js
MVC設計觀念
採用物件導向設計:SOLID
建立自動化開發流程:Task Runner
導入單元測試:Unit Testing
參考網頁
學習環境準備
請準備一台 Windows 筆電,並安裝下列軟體
並申請 github 帳號。
參考網頁
Last updated