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