【Laravel】部屬Laravel前的筆記-總匯篇:伺服器、資料庫、優化、注意事項(未完待更新)
前言:
部屬Laravel其實有很多細節,包括你要部屬在甚麼伺服器、資料庫,還有優化、注意事項等等,這篇不是萬用的,是給自己的筆記,也希望能幫助到一些人。
主題:
伺服器:
通常會分成有沒有錢,
有錢可以選擇有專門為Laravel部屬的,
官網提供了Vapor和Forge,小弟沒錢所以沒試過,
還有萬用的AWS和GCP就不多說了。
若很不幸你的團隊沒有經費、個人使用的話,
Heroku是可以考量的,不過資料庫會是一個癥結點(我看免費的好像只有postgresql),Heroku可以連接Github以達到自動部屬。
另外可以考慮免費的V-host(用FTP上傳檔案的那種),有資料庫,但除了網址很醜之外,部屬會需要更多的功力,我在這篇有提供一些小撇步,另外我是用byethost。
題外話:php 在 MacOs vs Win10的表現
資料庫:
優化:
優化的問題也很多,SQL優化、PHP優化、Laravel優化、前端優化、程式碼優化...太多了,優化又會考量到空間換時間(時間複雜度和空間複雜度),這邊我找了一些資料放,詳細可以請專業的考量優化的CP值挑選,雖然本人不是專業的優化工程師,要我來優化的話也是把網路上寫的攻略試試看,前後測試比對一下執行速率(苦笑,簡單來說,優化是一件很吃經驗的。
SQL優化:
PHP優化:
Improving PHP Performance for Web Applications
裡面提到比較個人常會使用到的
- 使用mecache暫存減少伺服器負擔(有機會再介紹mecache)
- 使用isset()取代count(), strlen(), 和 sizeof()
- 減少對資料庫的存取次數(簡單來說能用一段sql語法取得,就不要使用for、foreach來存取資料)
- 使用 單引號 取代 雙引號,特殊情況以外再使用雙引號
- 使用 === 會快於 ==,猜測是因為===是強型別的判斷
Laravel優化:
https://learnku.com/laravel/t/24559
前端優化:
這裡的優化代表執行速度上的優化,而不是介面上的優化。
Google有提供網站優化的評估和建議的網站(繞口令XD
這裡有一些介紹。
--
個人的小建議是,laravel的blade有提供方便的extend和include
但要注意的是你在子網頁面(content)裡面會通用和只有特定子頁面會用到的js、css等的不要都放在母頁面。
譬如說,今天新增了一個需要用到chart.js的頁面,只要在content的頁面內引用chart.js即可,
然而今天每個頁面都會用到bootstrap或自己的main.css(舉例:就是每個頁面都會用到的形況下)的時候,就可以在layout.blade內新增。
此舉是為避免在不需要的時候還載入一堆沒用到的函示庫,拖慢載入時間、耗損流量..
這應該算是前端工程師的小常識(?
程式碼上的優化:
考驗工程師的功力XD,平常LeetCode要多看多寫,要記住除了埋頭苦幹之外,多看看別人寫的,計算空間時間複雜度,相信不久就可以成為大魔法師了!(X:是工程師
平常養成寫註解、取變數名稱的習慣
注意事項:
env裡面的debug記得關(False):
這個不用多解釋了吧,不過真的有可能會忘記,我就看過有Laravel的網站跑出錯誤的資訊,為了不要把敏感資訊暴露,上架前確認一下吧。
資安問題:
Laravel這個框架應該已經具備許多資安的防備(ex:在blade的{{}},如果不用(應該是)!{{}}!,就會安全許多)
重導向的網頁(看是否要重製)
留言
張貼留言