20個最佳Laravel軟體包(效能最佳化、安全增強和SEO等 )

20個最佳Laravel軟體包(效能最佳化、安全增強和SEO等 )

你是否感覺過在你的 Laravel 專案中,你總是在為常見的任務編寫相同的程式碼?從頭開始構建功能既耗時,又影響開發速度。

解決方案就在於 Laravel 軟體包–預構建的、可重複使用的程式碼模組,可以解決常見的功能問題。這些軟體包可以簡化工作流程,提高安全性,並增強應用程式的功能。

本文是 Laravel 軟體包的一站式指南。我們將探討包的型別,瞭解 Package 與 Bundle 的區別,並揭曉一份精選的最佳 Laravel 包列表,以便更快地構建應用程式。

什麼是Laravel Package?

Laravel 軟體包(Package)就像一個工具箱,裡面裝滿了各種開發任務所需的專業工具。

它是一個預構建的、可重複使用的程式碼模組,用於處理 Laravel 應用程式中的特定功能。軟體包省去了一切從頭開始的過程,從而節省了時間,讓你可以專注於應用程式的核心功能。

Package與Bundle

雖然這兩個術語經常互換使用,但它們之間還是有細微的差別。

特性 Package Bundle
起源 由社羣或第三方開發 由 Laravel 核心團隊開發
包含 預設不包括 包含在新安裝的Laravel中
示例 Debugbar, Socialite Authentication, Caching

Laravel軟體包的型別

Laravel 軟體包分為兩大類:獨立於框架的軟體包和特定於框架的軟體包。

1. 獨立框架

這些軟體包專為 Laravel 設計。它們利用 Laravel 的特性、慣例和架構,為 Laravel 應用程式提供量身定製的功能。例如身份驗證包或快取擴充套件。

2. 特定框架

這些軟體包與 Laravel 無關,可用於任何 PHP 專案,與框架無關。它們提供的功能與 Laravel 的架構無關,因此可以在各種 PHP 專案中通用。例如資料庫訪問庫或表單驗證工具。

最佳Laravel軟體包列表

下面是基於功能的最佳 Laravel 軟體包列表:

類別 包名稱 描述
開發 Laravel Debugbar 新增用於除錯的開發人員工具欄。
Laravel User Verification 處理使用者驗證並驗證電子郵件。
Socialite 支援透過社交網路(如 Facebook、Google)登入。
Laravel Mix 基於 Webpack 的資產編譯工具。
Eloquent-Sluggable 為模型生成利於搜尋引擎最佳化的語法。
Migrations Generator 根據資料庫模式自動生成遷移檔案。
Laravel Backup 建立應用程式檔案和資料庫備份。
Laravel IDE Helper 改善開發人員在整合開發環境中的使用體驗(自動完成、型別提示)。
安全 Entrust 為您的應用程式提供基於角色的許可權。
No Captcha 執行 Google reCaptcha 驗證,防止垃圾郵件。
管理面板 Voyager 用於建立管理面板的視覺化生成器
LaraAdmin 開源管理面板和 CRUD 生成器。
Orchid 用於構建管理介面和儀表盤的開源工具包。
電子商務 Bagisto 開源 Laravel 電子商務包。
AvoRed 具有移動友好介面的開源 Laravel 購物車。
SEO Laravel Meta Manager 管理網站元標籤,搜尋引擎最佳化。
SEOTools 根據最佳實踐最佳化網站搜尋引擎最佳化。
Laravel-SEO 插入、管理和刪除網站元標籤。
除錯 Laravel Telescope 深入瞭解請求、異常、日誌等情況。
測試 Orchestral Testbench 幫助編寫 Laravel 軟體包測試。

Laravel開發軟體包

這些開發包透過除錯、資產編譯和程式碼生成工具,幫助你簡化開發工作流程。

1. Laravel Debugbar

Laravel Debugbar

苦於無法識別 Laravel 應用程式中的 bug?那就試試 Laravel Debugbar 吧!這個必不可少的軟體包新增了一個開發者工具欄,讓你即時瞭解應用程式的效能。

Debugbar 可以顯示所有資料庫查詢、渲染模板和傳遞引數。它甚至還能讓你新增自定義資訊,方便除錯。有了 Laravel Debugbar,你可以少花時間猜測,多花時間構建。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Debugbar::info($object);
Debugbar::error('Error!');
Debugbar::warning('Watch out…');
Debugbar::addMessage('Another message', 'mylabel')
Debugbar::info($object); Debugbar::error('Error!'); Debugbar::warning('Watch out…'); Debugbar::addMessage('Another message', 'mylabel')
Debugbar::info($object);
Debugbar::error('Error!');
Debugbar::warning('Watch out…');
Debugbar::addMessage('Another message', 'mylabel')

2. Laravel User Verification

Laravel User Verification

Laravel User Verification 軟體包透過處理電子郵件驗證和確認,簡化了使用者入職流程。它可以靈活定製電子郵件模板、驗證邏輯和使用者體驗,以完美地滿足您的應用需求。

此外,該軟體包與 Laravel 的身份驗證和通知系統無縫整合,為您節省開發時間和精力。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
public function register(Request $request)
{
$this->validator($request->all())->validate();
$user = $this->create($request->all());
event(new Registered($user));
$this->guard()->login($user);
UserVerification::generate($user);
UserVerification::send($user, 'My Custom E-mail Subject');
return $this->registered($request, $user)
?: redirect($this->redirectPath());
}
public function register(Request $request) { $this->validator($request->all())->validate(); $user = $this->create($request->all()); event(new Registered($user)); $this->guard()->login($user); UserVerification::generate($user); UserVerification::send($user, 'My Custom E-mail Subject'); return $this->registered($request, $user) ?: redirect($this->redirectPath()); }
public function register(Request $request)
{
   $this->validator($request->all())->validate();
   $user = $this->create($request->all());
   event(new Registered($user));
   $this->guard()->login($user);
   UserVerification::generate($user);
   UserVerification::send($user, 'My Custom E-mail Subject');
   return $this->registered($request, $user)
       ?: redirect($this->redirectPath());
}

3. Socialite

Socialite

告別複雜的社交登入設定!由 Laravel 團隊自行開發的 Laravel Socialite 提供了一個簡單易用的解決方案。使用者可以使用Facebook、Google 和 Twitter 等流行平臺登入。

Socialite 與 Laravel 的身份驗證系統無縫整合,在引擎蓋下處理 OAuth 的複雜性。這樣,你就可以專注於核心功能,同時利用安全的社交登入。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$user = Socialite::driver('github')->user();
// OAuth Two Providers
$token = $user->token;
$refreshToken = $user->refreshToken; // not always provided
$expiresIn = $user->expiresIn;
// All Providers
$user->getId();
$user->getName();
$user->getEmail();
$user->getAvatar();
$user = Socialite::driver('github')->user(); // OAuth Two Providers $token = $user->token; $refreshToken = $user->refreshToken; // not always provided $expiresIn = $user->expiresIn; // All Providers $user->getId(); $user->getName(); $user->getEmail(); $user->getAvatar();
$user = Socialite::driver('github')->user();
// OAuth Two Providers
$token = $user->token;
$refreshToken = $user->refreshToken; // not always provided
$expiresIn = $user->expiresIn;
// All Providers
$user->getId();
$user->getName();
$user->getEmail();
$user->getAvatar();

4. Laravel Mix

Laravel Mix

使用 Laravel Mix 提升你的開發工作流程,它是 Laravel 專案的資產編譯工具。它是 Laravel Elixir 的繼承者,提供了一個簡潔而強大的 API,能以更有效的方式定義構建步驟。

Laravel Mix 與 Webpack 無縫整合,讓你可以利用熱模組替換(HMR)和瀏覽器同步。無需手動重新載入,即可立即看到變化,從而節省寶貴的開發時間。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
mix.js('resources/assets/js/app.js', 'public/js')
.sass('resources/assets/sass/app.scss', 'public/css');
mix.js('resources/assets/js/app.js', 'public/js') .sass('resources/assets/sass/app.scss', 'public/css');
mix.js('resources/assets/js/app.js', 'public/js')
.sass('resources/assets/sass/app.scss', 'public/css');

5. Eloquent-Sluggable

Eloquent-Sluggable

厭倦了手動建立 SEO 友好型 URL 嗎?Laravel Eloquent-Sluggable 可自動完成這一過程!這個便捷的工具可以根據你的模型屬性生成獨特的 slugs,為你的 Laravel 應用程式建立簡潔、搜尋引擎友好的 URL。

Eloquent-Sluggable 為 slug 欄位、分隔符和更新行為提供了自定義選項。此外,它還為處理特殊情況和整合您自己的邏輯提供了鉤子,確保您的 URL 始終處於最佳化狀態。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
class Post extends Eloquent
{
use Sluggable;
protected $fillable = ['title'];
public function sluggable() {
return [
'slug' => [
'source' => ['title']
]
];
}
}
$post = new Post([
'title' => 'My Awesome Blog Post',
]);
// $post->slug is "my-awesome-blog-post
class Post extends Eloquent { use Sluggable; protected $fillable = ['title']; public function sluggable() { return [ 'slug' => [ 'source' => ['title'] ] ]; } } $post = new Post([ 'title' => 'My Awesome Blog Post', ]); // $post->slug is "my-awesome-blog-post
class Post extends Eloquent
{
   use Sluggable;
   protected $fillable = ['title'];
   public function sluggable() {
       return [
           'slug' => [
               'source' => ['title']
           ]
       ];
   }
}
$post = new Post([
   'title' => 'My Awesome Blog Post',
]);
// $post->slug is "my-awesome-blog-post

6. Migrations Generator

Migrations Generator

在 Laravel 中苦於手動建立資料庫遷移?Laravel Migrations Generator 軟體包可以幫到你!這款省時工具可以分析你現有的資料庫模式,並自動生成遷移檔案。

專注於構建你的應用邏輯,而不是編寫遷移檔案。只需執行提供的命令,就能一次性生成所有資料庫表的遷移檔案。讓 Laravel Migrations Generator 來處理繁重的工作吧!

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
php artisan migrate:generate
php artisan migrate:generate
php artisan migrate:generate

您還可以只選擇要遷移的某些表:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
php artisan migrate:generate table1,table2
php artisan migrate:generate table1,table2
php artisan migrate:generate table1,table2

7. Laravel Backup

Laravel Backup

不要冒丟失寶貴資料的風險!Laravel Backup 軟體包透過建立備份來保護您的應用程式。它可以壓縮你選擇的目錄和資料庫,確保你的專案有一個完整的快照。

只需一條命令,就能建立專案的完整快照,包括檔案和資料庫。這簡化了備份過程,並確保應用程式的安全可靠。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
php artisan backup:run
php artisan backup:run
php artisan backup:run

8. Laravel IDE Helper

Laravel IDE Helper

IDE Helper 軟體包為你的 Laravel 程式設計增光添彩!這款必備工具可增強你的整合開發環境(如 PhpStorm、VS Code)體驗,具有自動補全和專門針對 Laravel 元件的型別提示等功能。

不再需要手動查詢!在可用方法和引數方面獲得即時建議和明確指導。此外,該軟體包還能生成文件註釋,讓瀏覽 Laravel API 變得輕而易舉,一切都在你熟悉的整合開發環境中進行。

Laravel安全軟體包

這些安全軟體包可幫助您利用使用者身份驗證、基於角色的許可權和 reCAPTCHA 整合等功能增強應用程式的安全性。

9. Entrust

Entrust

透過 Entrust,您可以定義使用者角色,併為每個角色分配特定許可權。這可確保使用者只能訪問與其角色相關的功能,從而提高應用程式的安全性。

該軟體包建立了以下四個表:

  • 角色表,用於儲存角色記錄
  • 許可權表,用於儲存許可權記錄
  • role_user 表,用於儲存角色和使用者之間的一對多關係
  • permission_role 表,用於儲存角色和許可權之間的多對多關係。

執行以下程式碼即可建立角色:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$admin = new Role();
$admin->name = 'admin';
$admin->display_name = 'User Administrator'; // optional
$admin->description = 'User is allowed to manage and edit other users'; // optional
$admin->save();
$admin = new Role(); $admin->name = 'admin'; $admin->display_name = 'User Administrator'; // optional $admin->description = 'User is allowed to manage and edit other users'; // optional $admin->save();
$admin = new Role();
$admin->name = 'admin';
$admin->display_name = 'User Administrator'; // optional
$admin->description  = 'User is allowed to manage and edit other users'; // optional
$admin->save();

讓我們來看看如何為使用者分配角色,

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
user = User::where('username', '=', 'michele')->first();
$user->attachRole($admin);
user = User::where('username', '=', 'michele')->first(); $user->attachRole($admin);
user = User::where('username', '=', 'michele')->first();
$user->attachRole($admin);

現在,您必須為這些角色賦予許可權:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$createPost = new Permission();
$createPost->name = 'create-post';
$createPost->display_name = 'Create Posts';
$createPost->description = 'create new blog posts';
$createPost->save();
$admin->attachPermission($createPost);
$createPost = new Permission(); $createPost->name = 'create-post'; $createPost->display_name = 'Create Posts'; $createPost->description = 'create new blog posts'; $createPost->save(); $admin->attachPermission($createPost);
$createPost = new Permission();
$createPost->name         = 'create-post';
$createPost->display_name = 'Create Posts';
$createPost->description  = 'create new blog posts';
$createPost->save();
$admin->attachPermission($createPost);

10. No Captcha

No Captcha

使用 No Captcha 保護你的 Laravel 表單免受自動機器人的攻擊!這個軟體包整合了谷歌的 reCaptcha 驗證,為您的表單增添了一層額外的安全保障。只需獲取一個免費的 API 金鑰,剩下的就交給 No Captcha 處理吧。

此外,No Captcha 還提供驗證碼小部件的定製選項,確保它與您的表單設計完美融合,不會破壞使用者體驗。使用No Captcha,關注真實使用者,而不是機器人。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
NoCaptcha::shouldReceive('verifyResponse')
->once()
->andReturn(true);
$response = $this->json('POST', '/register', [
'g-recaptcha-response' => '1',
'name' => 'Pardeep',
'email' => 'pardeep@example.com',
'password' => '123456',
'password_confirmation' => '123456',
]);
NoCaptcha::shouldReceive('verifyResponse') ->once() ->andReturn(true); $response = $this->json('POST', '/register', [ 'g-recaptcha-response' => '1', 'name' => 'Pardeep', 'email' => 'pardeep@example.com', 'password' => '123456', 'password_confirmation' => '123456', ]);
NoCaptcha::shouldReceive('verifyResponse')
   ->once()
   ->andReturn(true);
$response = $this->json('POST', '/register', [
   'g-recaptcha-response' => '1',
   'name' => 'Pardeep',
   'email' => 'pardeep@example.com',
   'password' => '123456',
   'password_confirmation' => '123456',
]);

Laravel管理面板軟體包

這些管理面板包可幫助您快速構建使用者友好的管理介面,以管理應用程式的後臺。

11. Voyager

Voyager

建立美觀實用的管理面板是一件費時費力的事情。Voyager 是一個 Laravel 軟體包,它以簡潔、使用者友好的介面簡化了這一過程。

這個文件齊全的軟體包包括一個簡潔的前端主題、用於測試的虛擬資料和一個功能強大的媒體管理器。快速上手,專注於構建 Laravel 應用程式的核心功能。

12. LaraAdmin

LaraAdmin

LaraAdmin 是一款面向 Laravel 開發人員的免費開源軟體。該軟體包具有使用者管理、基於角色的訪問控制和動態選單等功能,可簡化管理面板的建立。

LaraAdmin 還提供具有排序、過濾和分頁功能的可定製資料表,讓你輕鬆管理複雜的資料集。減少建立管理介面的時間,把更多時間花在核心功能上!

13. Orchid

Orchid

使用 Orchid 為建立 Laravel 管理面板增添動力!這個開源工具包提供了靈活、可擴充套件的設計,讓你可以根據專案需求構建使用者友好的介面。

Orchid 不僅僅是基本的管理面板,還是網路應用程式的核心繫統。將其視為 CMS 或 CMF 基礎,可簡化 Laravel 應用程式中的內容和使用者管理。

Laravel電子商務軟體包

這些電子商務軟體包可幫助您啟動網店開發,並提供產品管理、購物車和支付閘道器等功能。

14. Bagisto

Bagisto

Bagisto 是一款開源的 Laravel 電子商務軟體包,很快吸引了 Laravel 社羣的目光。它提供開箱即用的 Laravel 使用者管理、多倉庫庫存管理選項等。

此外,該 Laravel CMS 軟體包還捆綁了內建的使用者友好型管理面板導航,並提供多幣種、本地化、訪問控制級別、多渠道、支付整合等功能。

15. AvoRed

AvoRed

AvoRed 可讓您根據需要輕鬆定製開源 Laravel 購物車。它預設提供移動友好介面佈局,還包含最佳 Laravel SEO 軟體包。

AvoRed 允許你建立類別、屬性等產品實體,並具有高效的訂單跟蹤、客戶資訊、庫存管理等訂單管理功能。

Laravel SEO軟體包

這些 SEO 軟體包透過管理元標籤、網站地圖和結構化資料,幫助你最佳化應用程式,使其更適合搜尋引擎。

16. Laravel Meta Manager

Laravel Meta Manager

透過 Laravel Meta Manager,您可以最佳化網站的搜尋引擎最佳化,提高網站在 SERP 上的排名。它強調應用程式的 Meta 標籤,並允許您根據最佳搜尋引擎最佳化實踐對其進行修正。

軟體包附帶推薦的元標籤,包括標準搜尋引擎最佳化、Dublin Core、Google Plus、Facebook Open Graph 等。配置完成後,將生成的元標籤新增到所需頁面的頭部。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
@include('meta::manager')
@include('meta::manager')
@include('meta::manager')

上文將使用預定義配置來預填生成的元標記。不過,如果您要臨時定義某些選項,可以使用下面的程式碼。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
@include('meta::manager', [
'title' => 'My Example Title',
'description' => 'This is my example description',
'image' => 'Url to the image',
])
@include('meta::manager', [ 'title' => 'My Example Title', 'description' => 'This is my example description', 'image' => 'Url to the image', ])
@include('meta::manager', [
    'title'         => 'My Example Title',
    'description'   => 'This is my example description',
    'image'         => 'Url to the image',
])

示例:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
@include('meta::manager', [
'title' => 'My Example Title',
'description' => 'This is my example description',
'image' => '',
])
</head>
<body>
</body>
</html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> @include('meta::manager', [ 'title' => 'My Example Title', 'description' => 'This is my example description', 'image' => '', ]) </head> <body> </body> </html>
<!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        @include('meta::manager', [
            'title'         => 'My Example Title',
            'description'   => 'This is my example description',
            'image'         => '',
        ])
    </head>
    <body>
    </body>
    </html>

17. SEOTools

SEOTools

SEOTools 允許你根據最佳 SEO 實踐最佳化 Laravel SEO。它提供出色的網站最佳化功能,並同時支援 Laravel 和 Lumen 框架。

該軟體包具有使用者/初學者友好的介面,因此很容易整合到專案中。它還可以為 Twitter 和 Open Graph 設定標題和元標籤。

18. Laravel-SEO

Laravel-SEO

使用 Laravel-SEO 控制你的 Laravel 應用程式的搜尋引擎最佳化!這個軟體包簡化了元標籤管理,讓你輕鬆插入、編輯和刪除元標籤。

它甚至還能讓你新增結構化資料,以增強搜尋引擎結果。輕鬆管理 Open Graph 和 Dublin Core 等常用元標籤,最佳化 Laravel 應用程式的可見性和排名潛力。

Laravel除錯軟體包

這些除錯包可幫助你利用除錯工具和效能剖析器深入瞭解應用程式的行為。

19. Laravel Telescope

Laravel Telescope

Laravel Telescope 是你除錯 Laravel 應用程式的秘密武器。這款功能強大的偵錯程式能揭示引擎蓋下發生的一切。它可以跟蹤傳入的請求、異常、日誌、資料庫查詢等,還能即時洞察應用程式的行為,幫助你準確定位並高效修復 Bug。這使得 Telescope 成為任何在本地開發環境中工作的 Laravel 開發人員的必備工具。

Laravel測試軟體包

這些測試軟體包可透過建立健全的單元測試和整合測試,幫助你提高程式碼質量和可維護性。

20. Orchestral Testbench

Orchestral Testbench

在編寫 Laravel 軟體包時,你的軟體包無法使用 Laravel 的所有測試助手。因此,如果你想把你的軟體包測試寫成一個典型的 Laravel 應用程式,你可以使用 Orchestral Testbench 軟體包。

  1. 為新軟體包設定 Composer.json 檔案
  2. 新增服務提供者
  3. 設定別名
  4. 建立 Facade 類

以上是編寫 Laravel 軟體包必須掌握的四個重要步驟,可以幫助你加快開發程序。

小結

本部落格列出了最佳 Laravel 軟體包,幫助你最佳化專案的生產力。

選擇合適的 Laravel 軟體包主要取決於你的專案需求。由於Laravel為開發者提供了執行自定義操作的便利,你可以使用這些軟體包高效地執行功能任務。

如果你想推薦更多的 Laravel 軟體包,歡迎在下面的評論中與我們分享。

常見問題

問:哪個版本的 Laravel 最好?

答: 最新的 Laravel 穩定版本通常是最好的,因為它包含了最新的功能、安全補丁和效能改進。

問:如何選擇最好的 Laravel 軟體包?

答: 選擇 Laravel 軟體包時,要評估它與你的 Laravel 版本的相容性、文件質量、社羣支援和更新頻率。

問:哪種 Laravel 軟體包最好?

答: 流行的 Laravel 軟體包包括用於角色管理的 Spatie’s Laravel Permission、用於佇列監控的 Laravel Horizon 和用於高階腳手架的 Laravel Jetstream。

問:最好的 Laravel 社羣軟體包有哪些?

答: 一些最好的社羣軟體包包括 Spatie Laravel Backup、Laravel Debugbar、Telescope 和 Livewire,用於提高開發效率和應用程式功能。

評論留言