Laravel多年來一直是最流行的PHP框架之一。它優雅、可擴充套件,已成為開發人員和使用PHP的公司的事實上的框架之一。現在,Laravel 9即將推出大量新功能。
過去,新版本每六個月釋出一次,導致對Laravel的新發布過程提出了相當多的問題、嚴厲的評論和混亂。隨著Laravel 9的釋出,該框架已進入12個月的主要釋出週期,並將於2022年1月釋出。
本文探討了Laravel 9的主要功能。最重要的是,我們還將詳細介紹如何升級到Laravel 9並開始開發Web應用程式。
什麼是 Laravel?
Laravel是一個開源的PHP Web應用程式框架,以其優雅的語法而聞名。它是一個MVC框架,用於使用PHP程式語言構建簡單到複雜的Web應用程式,它嚴格遵循MVC(模型-檢視-控制器)架構模式。
如果您還沒有使用過Laravel,您可以閱讀Laravel與django的對比文章以深入瞭解,並檢視我們基於Laravel開發實時評論系統的教程以開始使用。
Laravel的主要特性
如果你是這個框架的新手,我們精選了一些最好的Laravel特性來讓你更好地理解。
Laravel功能(圖片來源:Moon Technolabs)
Eloquent ORM
Laravel的物件關係對映器 (ORM) 稱為Eloquent,它是Laravel的最佳功能之一,因為它允許與所選的資料模型和資料庫進行無縫互動。
使用Eloquent,Laravel抽象了涉及互動和編寫複雜SQL查詢以訪問資料庫資料的所有障礙。
Artisan CLI
Artisan CLI或命令列是Laravel的另一個重要方面。有了它,您可以從命令列建立或修改Laravel的任何部分,而無需瀏覽資料夾和檔案。
藉助Artisan,您甚至可以使用Laravel Tinker從命令列直接與資料庫互動——所有這些都無需安裝資料庫客戶端。
MVC架構
Laravel的MVC架構特性使該語言具有相關性和適應性,因為它遵循流行的Web開發模式,並不斷進行重大改進。
Laravel將迫使您學習和理解MVC架構模式,該模式在幾乎所有框架中都很流行和使用,例如來自JavaScript的AdonisJS和來自C#的ASP.NET MVC。
自動分頁
如果您曾經為應用程式中的分頁而苦惱,您就會明白通過內建框架整理分頁的價值。
Laravel通過構建開箱即用的自動分頁來解決分頁麻煩。此功能是其最受認可的功能之一,它消除了自己解決分頁之謎所涉及的工作。
安全
仔細檢查您正在考慮使用的任何Web應用程式的安全措施至關重要,因為缺乏盡職調查可能會導致資金損失,甚至您的網站或產品被劫持。
由於Laravel遵守OWASP安全原則,因此提供了許多安全措施。從跨站點請求偽造 (CSRF) 到SQL隱碼攻擊,Laravel都有一個內建的解決方案。
對Laravel 9有何期待
Laravel 9計劃於2021年9月釋出,已被推遲到2022年1月,使其成為第一個在12個月釋出週期後推出的長期支援 (LTS) 版本。造成這種延遲的原因有很多,包括但不限於以下幾點:
- Laravel 使用各種社羣驅動的專案和大約九個Symfony庫。然而,Symfony計劃在2021年11月之前釋出6.0版本。延遲將使Laravel團隊能夠將這個新版本的Symfony作為Laravel 9的一部分。
- 延遲將使團隊有時間監控Laravel如何與新版本的Symfony互動兩個月。它還為他們提供了糾正任何重大更改或錯誤的空間。
- 最後,推遲Laravel 9的釋出可以更好地為Laravel團隊定位,以應對未來每年的釋出。在Symfony釋出後,這將為團隊提供兩個月的額外提升時間。
由於這些原因,您可以看到其釋出的延遲值得等待。
Laravel 9的新特性
現在,讓我們探索在即將到來的 Laravel 主要版本中你應該期待的特性和改進列表。
最低PHP要求
首先也是最重要的是,Laravel 9需要最新的PHP 8和PHPUnit 8進行測試。這是因為Laravel 9將使用最新的Symfony v6.0,它也需要PHP 8。
匿名存根遷移
當您執行流行的遷移命令時,Laravel將匿名存根遷移設定為預設行為:
php artisan make:migration
匿名存根遷移功能最初是在Laravel 8.37中釋出的,用於解決Github的這個問題。問題是嘗試從頭開始重新建立資料庫時,具有相同類名的多個遷移可能會導致問題。新的存根遷移功能消除了遷移類名稱衝突。
從Laravel 8.37開始,該框架現在支援匿名類遷移檔案,而在Laravel 9中,它將成為預設行為。
<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::table('people', function (Blueprint $table) { $table->string('first_name')->nullable(); }); } };
新的查詢生成器介面
在新的Laravel 9中,型別提示對於IDE中的重構、靜態分析和程式碼完成非常可靠。這是由於Query\Builder、Eloquent\Builder 和 Eloquent\Relation之間缺乏共享介面或繼承。儘管如此,使用Laravel 9,開發人員現在可以享受用於型別提示、重構和靜態分析的新查詢構建器介面。
<?php return Model::query() ->whereNotExists(function($query) { // $query is a Query\Builder }) ->whereHas('relation', function($query) { // $query is an Eloquent\Builder }) ->with('relation', function($query) { // $query is an Eloquent\Relation });
此版本新增了新的Illuminate\Contracts\Database\QueryBuilder interface
, 以及Illuminate\Database\Eloquent\Concerns\DecoratesQueryBuilder
將實現介面代替__call
魔法方法的特性。
PHP 8字串函式
由於Laravel 9針對PHP 8,Laravel合併了這個PR,建議使用最新的PHP 8字串函式。
這些功能包括使用的 str_contains()
,str_starts_with()
以及str_ends_with()
在內部\Illuminate\Support\Str
類。
上面列出的Laravel 9的功能和改進是對即將發生的事情的先睹為快。它肯定會帶來許多錯誤修復、功能,當然還有許多重大更改。
如何安裝Laravel 9
如果您想開始使用Laravel 9進行開發和測試,您可以輕鬆地在本地機器上安裝和執行它。
Laravel 9支援PHP 8,因此如果您打算測試它,請務必檢查您的PHP版本或啟動全新安裝。
您可以通過Packagist發現有關該版本的更多詳細資訊。
要使用composer安裝Laravel 9,請執行以下命令:
composer create-project --prefer-dist laravel/laravel laravel-9-dev dev-develop
上面的命令將laravel-9-dev
使用最新的Laravel 9建立一個名為 的新Laravel專案,正如我們所知,它仍在開發中(因此dev-develop
)。
第二種方法是使用Laravel全域性CLI建立一個新的Laravel專案,並選擇從dev分支建立你的新專案。
輸入以下命令建立一個新的Laravel 9專案:
laravel new laravel-9-dev --dev
現在你已經安裝了Laravel 9,你可以進入新目錄(laravel-dev)並執行artisan命令來檢查版本:
cd laravel-9-dev php artisan --version
它應該向您展示Laravel 9的開發版本。瞧!
小結
Laravel是一個引人注目的PHP框架,在開發人員中越來越受到關注。它即將釋出的主要版本(Laravel 9)是12個月釋出週期之後的第一個版本,我們已經可以看到它將引入“多汁”的新功能。
這是新功能的完整列表嗎?可能不會,因為 Laravel 團隊可能會在釋出日期之前宣佈新功能。因此,請務必將此帖子加入書籤,因為我們將在未來的更新中介紹它們。
評論留言