哈囉大家好!
挑戰的第二天就是要來了解Laravel這個框架的特色以及比較使用Laravel與撰寫純PHP的差異。
下面的資訊是透過閱讀官方文檔與CHAT GPT的幫忙之下彙整而成的資料,若有錯誤或是想要補充的地方也歡迎邦友們在下方留言喔!那我們就開始吧~
Laravel是由Taylor Otwell所創建的自由開源PHP框架,想要實現「用MVC架構撰寫WEB軟體」這個目標。說到「MVC架構」這個專有名詞,身為工程師小菜雞的我當然要來幫我自己科普一下了!
「MVC」是英語單字(Model-View-Controller)的字首組合,MVC架構是軟體工程中的一種設計模式,主要是將應用程式分成三個部分:
下方是簡易的MVC架構運作過程:
哇~認識了MVC架構,但到底和寫一般的PHP有什麼不一樣啊?
「Laravel框架可以讓開發者更有組織架構地撰寫程式碼,讓程式碼變得更容易維護以及建造易擴充的應用程式。」
BY Laravel官方文檔
以下為官方列舉的Laravel框架特色:
既然對Laravel框架有些基本的了解,是時候讓Laravel和plain PHP進行battle了!
(下方battle結果來自CHAT GPT轉述江湖傳說)
1. 組織與架構上的差異:
Plain PHP就像是沒有被金箍咒束縛的孫悟空,可以自由自在大鬧天庭。沒有遵循MVC的架構下,開發者隨著應用程式規模的擴大,很可能造成程式碼維護上的困難以及PHP檔案的不一致。
但Laravel就不同了!在頭戴名為MVC的金箍咒下,必須遵循這個架構生長,也不會偏離航線。即使專案變得越來越大,也不會失去控制,日後修改或維護程式碼上也變得容易許多。
2. 開發速度與效率:
處理認證、驗證或是管理session時,用plain PHP撰寫的話必須要在每個檔案裡重複相似的程式碼,很容易花太多時間以及製造錯誤的程式碼。
Laravel就像是天生帶有咒力的咒術師,有內建的工具可以處理重複性的任務,像是認證、驗證以及處理routing,可以讓開發者去打更高級的怪物。(處理其他任務,讓開發更有效率)
3. 資安:
在Plain PHP中,資安的部分必須由開發者從0開始,例如撰寫防止SQL注入的語法,防止XSS攻擊⋯⋯等。
Laravel框架在資安部分也是有內建的Eloquent ORM來防止SQL注入攻擊,讓開發者在處理資安的部分變得更容易。
4. 資料庫管理:
目前工作上撰寫的是plain PHP,所以對於第四點特別有感觸。通常要對資料庫做CRUD處理時,必須撰寫純SQL語法以及PDO或MySQLi library來連接遠端資料庫。在撰寫較複雜的SQL query時就會很容易出錯(當然有部分也是我的問題啦哈哈哈~)
Laravel框架的Eloquent ORM讓開發者用更簡潔的語法來和資料庫互動,讓管理資料庫以及修改語法上變得更簡單並且降低寫錯語法的機率。
以上就是對於Laravel框架與比較的簡單介紹!還好有在12:00前完成發文!!
雖然才第二天但已經可感受到堅持30天的不容易呢~
希望明天自己也能如期完成發文任務