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,用于提高开发效率和应用程序功能。

评论留言