laravel框架的缺點有:1、基於組件式的框架,比較臃腫;2、框架大,比yaf等小型框架的效率會低一些;3、框架較複雜,上手比一般框架要慢,學習成本高。
本教學操作環境:windows7系統、Laravel6版、Dell G3電腦。
laravel框架
Laravel是一套簡潔、優雅的PHP Web開發框架(PHP Web Framework)。它可以讓你從麵條一樣雜亂的程式碼中解脫出來;它可以幫你建立一個完美的網路APP,而且每行程式碼都可以簡潔、富於表達力。
優點
文件豐富
#大量的第三方開源函式庫
#安全機制齊全(表單驗證等)
中間件和路由對存取進行過濾及控制,避免非法請求
錯誤處理機制友善
支援composer套件管理工具
集合了php比較新的特性及各種設計模式。
缺點:
#基於元件式的框架,比較臃腫
效能比yaf等小型框架的效率會低一些
較複雜,上手比一般框架慢,學習成本高
使用Laravel 框架的好處
如果上面這些聽起來已經很有趣,並且足以鼓勵你在你開發下一個應用程式時使用框架,那麼接下來讓我分享一下Laravel 框架相對於其它PHP 框架所具有的一些優勢。這些優勢無疑使 Laravel 框架成為最佳 PHP 框架的主要競爭者之一。
1. 開箱即用的使用者驗證
Laravel 框架提供了開箱即用的使用者驗證功能。任何現代的 web 應用程式都需要使用者身份驗證,使用 Laravel 框架,你幾乎不需要做任何事情就可以將它設定好。當你設定使用者驗證時,Laravel 框架會建立所有重要的元件,如使用者模型、註冊和登入控制器,以及對應的視圖。而且在將來,根據應用程式所需的業務邏輯,將這些元件擴展到新添加的功能上也是非常容易的。
除此之外,Laravel 框架還提供了 Socialite package(擴充包),它使你的應用程式能夠使用各種社交網路(如 Facebook, Google Plus 和 Twitter)對用戶進行身份驗證。要使它工作正常,你只需進行最低限度的配置。
2.約定優於設定(也稱為依約定程式設計)
Laravel 框架同樣採用 「約定優於設定」 的方法。這基本上意味著,如果遵循了不同元件的命名約定,就幾乎不必關注配置工作。如果你遵循了命名約定,Laravel 框架本身就會幫你處理許多低階的細節,一切都會神奇地開始工作。如果你一直使用傳統的 PHP 編程,這在一開始可能會讓你感到難以忍受。但一旦你嚐到了甜頭,你就再也不想回頭了。
3. 輕鬆使用的電子郵件功能
很難想像一個現代的應用程式會沒有電子郵件功能。使用 Laravel 框架,實現電子郵件發送功能非常容易。除了 SMTP 和 Php 郵件功能外,Laravel 框架還支援各種各樣的電子郵件通知服務,如 Mailgun,Mandrill,SparkPost,Amazon SES,SendMail 等等。這些服務可以讓你能夠快速開始透過本地或雲端的服務發送郵件。你也可以使用 Nexmo 透過 Slack 和 SMS 發送通知。所有這些服務在 Laravel 框架中都是開箱即用的。
Laravel 框架也支援Markdown (譯者註:Markdown 是一個文字到HTML(text-to-HTML)的轉換工具),它能夠讓你在很少的時間內完成電子郵件的建立工作。
4.Artisan 命令
對我個人而言,Artisan 命令列是 Laravel 框架提供的最簡練和最有用的功能。 Artisan 是 Laravel 框架的命令列接口,它幫助開發人員使用命令列本身自動化許多任務。 Artisan 命令可以在應用程式本身中使用,開發人員也可以建立額外的 Artisan 命令。
你所能想到的所有常見任務,都能找到一個 Artisan 指令與之對應。例如,建立一個模型、建立一個控制器、建立一個資料庫種子、遷移資料庫等等。這個清單是無窮無盡的。我之所以說它 “簡練”,是因為你所要做的就是傳遞命令,剩下的工作全交給 Laravel 框架來處理。
5.「測試驅動開發」 的測試自動化
Laravel 框架自帶對 PHPUnit 的支持,使得採用 “測試驅動開發” 模式的 PHP 應用程式的測試變得非常容易。為應用程式編寫單元測試變得很簡單,而且確保事情按照你希望的方式進行。
6. 簡潔的依賴注入
一旦你開始使用Laravel 框架工作,你很快就會意識到Laravel 框架是從Ruby on Rails 和更多的函數式語言中獲得的靈感,而不是從Java。這一點從 Laravel 框架處理依賴注入的方式就可以輕易看出這一點。儘管實作依賴注入可以採取複雜的模式,但 Laravel 框架採取的做法與之相反,它提供了創建全域助手函數的簡單方法。借助於全域函數和 Faade 靜態代理,我們就可以在任何需要的地方輕鬆地實現依賴注入。
7.業務邏輯和顯示程式碼的分離
Laravel 遵循模型 - 視圖 - 控制器(MVC)架構模式,將業務邏輯與視圖分開。這種方法有很多優點。而要真正了解它優點,你需要了解什麼是 MVC 模式,以及你的應用程式是否需要這樣的體系架構。
8. Eloquent ORM(物件關聯映射)實作
Eloquent 是 Laravel 提供的 ORM(物件關聯映射)實作。更多資訊可以參考維基百科中的連結(https://en.wikipedia.org/wiki/Object-relational_mapping)。 Eloquent 讓從資料庫中取得資料變得非常容易。建立表格之間的關係並從這些表中取得資料也變得很簡單。 Eloquent 還允許你在表格中建立各種連接,並提供許多幫助函數,讓與資料庫的互動變得非常簡單。你幾乎不必寫 SQL 查詢語句或函數。因為有了Eloquent ORM,Laravel 框架就可以為下面這些資料庫提供開箱即用的支援:
MySQLPostgreSQLSQLiteSQL Server 你真是說對了,這基本上意味著只要你使用Eloquent,你就不必擔心與上述任何資料庫的兼容性。從一個資料庫切換到另一個資料庫也非常容易。現在試著想像這為你的應用程式帶來的可擴展性,不妨讓我用一個例子來解釋這一點。假設你有一個應用程序,這個應用程式在開始時有一個很小的用戶群。由於使用者數量較小且應用程式處於初始階段,因此你決定使用 MySQL 作為資料庫。一段時間過後,你的應用程式的使用者數量增長到了相當高的級別,現在你可能需要切換到 SQL Server 資料庫。因為使用了 Eloquent,這個切換現在變得非常簡單,就像更改 Laravel 框架中的特定配置詳細資訊一樣容易。
9. 佇列(Queue)和調度器(Scheduler)
在開發應用程式時,通常會有一些耗時的任務。這些任務需要推遲到稍後的時間執行,這樣它們就不會對使用者的流程造成阻塞。這類任務的完美範例可能是產生一個統計使用者請求建立 CSV 檔案的 PDF 報告。 Laravel 框架的佇列服務提供了一個統一的 API,用於將這些任務推遲到應用程式的稍後時間處理。
談到 Laravel 框架的命令調度器,它是那些繁瑣的定時任務(Cronjob)的完美替代品。在很多時候,開發人員必須為特定的任務設定定時作業。這種任務的完美例子是向所有訂閱用戶發送他們訂閱的每週簡訊 (Newsletter)。為了設定這個定時作業,開發人員必須使用 SSH 命令登入伺服器並在作業系統層級設定這個定時作業。這在一段時間內會成為一個麻煩,因為這些定時作業不能成為 GIT 和其它版本控制系統管理的一部分。但是 Laravel 框架的命令調度器使用內建函數提供了一個乾淨的 API 來調度各種各樣的任務。這樣,你就不必使用 SSH 指令登入伺服器的終端,而所有這些被排程的作業都成為程式碼的一部分而納入版本控制系統管理的範圍。
10. 簡潔的路由
Laravel 框架處理路由的方式簡單直覺。有一個單一的 web.php 檔案來處理所有的 web 路由。如果某些路由需要公共中間件,它們可以輕鬆地在 Laravel 中分組。
路由的一個完美的應用場景是:應用程式中的某些頁面,在使用者可以查看它們之前,這些頁面需要使用者身份驗證。 Laravel 框架可以將所有這些頁面分組,並且經過 Auth 中間件檢查,以確保只有登入系統的使用者才能查看這些頁面。 Laravel 框架也提供了一個簡潔的路由模型綁定(route model binding),其中模型(model)可以綁定到路由。有了這個幫助,視圖可以直接從路由本身返回,甚至不需要存取控制器。
11. Composer 管理依賴關係
#Laravel 框架使用 Composer 管理依賴關係和自動載入。 Composer 可以幫助你安裝 Laravel 擴充包,這讓依賴管理變得輕而易舉。在任何時候,你都可以檢查 package.json 檔案來查看你的應用程式正在使用的所有依賴項。 Composer 也讓你能夠使用單一 Composer 指令更新依賴項。
12.Blade 模板引擎
Blade 是 Laravel 框架的模板引擎。 Blade 可以讓你在分離視圖和業務邏輯上領先一步。它能讓你的視圖程式碼保持非常乾淨。一旦你對 MVC 架構模式和 Laravel 對它的實現有了清楚的了解,你就會更清楚地認識到 Blade 模板引擎的重要性。 Blade 還提供了模板繼承,因此你可以將最近使用的模板劃分為多個部分,並讓它視圖文件繼承這些部分。有了 Blade 的幫助,你就可以建立一些邏輯較小的視圖部分,然後可以包含這些小的部分以形成完整的視圖。
13. 文檔
這是一個有點灰色的區域。當我最初開始使用 Laravel 框架的時候,我在尋找文件時確實遇到了問題。當時所有的一切都沒有文檔,但是在某個時刻我突然發現有些事情開始神奇地工作,那就是大家始遵循命名規範的那個時刻。現在,有一些 API 文件列出了 Laravel 框架中聲明的每個類別和方法。一旦你掌握瞭如何使用它,並且知道如何使用 Laravel 文件來為你的利益服務,我保證你不會再有任何抱怨。
14. 活躍社群
Laravel 確實有一個活躍的社群。當你遇到任何問題時,你都可以搜索,而且肯定會查到許多針對你的問題的 StackOverflow 帖子。除了在 StackOverflow 上有一個活躍的社群外,還有一個叫做 Laracast 的討論論壇。你可以免費註冊成為 Laracast 論壇和社群的一部分,那個社群現在非常活躍。
我認為這些優勢足以讓你對 Laravel 框架感到興奮。儘管把它定義為完美肯定是誇大其詞了,但我可以肯定的是,Laravel 框架絕對是最好的 PHP 框架之一。
#相關推薦:最新的五個Laravel影片教學
以上是laravel有什麼缺點的詳細內容。更多資訊請關注PHP中文網其他相關文章!