这里有 10+ 个用来搭建 Laravel 应用的包
为何会创建这个包的列表?因为我是一个「比较懒」的开发者,在脸书上是多个 Laravel 小组的成员。平日遇到最多的问题就是开发是需要用那些包。我很懒所以我不想每次都从头开始搞这些东东。
为何此文没有包括管理包?它们将会在另外一篇文章中进行讲解。
1. 模块
如果你不是开发一个「玩具项目」。那么,使用模块以及按模块功能进行划分是比较推荐的做法。集中管理模块的实体、控制器、视图、路由、配置等信息。还有啥?以及更方便的在多个应用间进行代码转移。
优势
– 代码的封装
– 代码中的顺序
– 多应用的代码转移
– 代码生成器 — 模块、控制器、实体类等
详见 Github https://github.com/nWidart/laravel-modules
2. Spatie permissions
如果你不知道 Spatie,你应该开始立刻开始了解他们!伟大的公司。Spaite 的角色和权限包是权限包中最优秀的之一。
优点
– 角色
– 权限
– 直接权限
– 中间件
– 丰富的 blade 模板命令
– Artisan 命令
哪里获取?https://github.com/spatie/laravel-permission
3. Laravel Datatables
如果你使用 DataTables 并且你在创建你自己的 JavaScript、Ajax、路由、数据库查询、过滤器、搜索等。相信我,这是一个更好的解决方案。
优点
– 使用简单
– DataTable 服务
– 自定义数据库查询
– 生成 JavaScript
– 多重定制
哪里获取?https://github.com/yajra/laravel-datatables
4. 表单构造器
说实话,我不喜欢在 HTML 中混合表单。Laravel 表单构造器能够让你的表单从 HTML 视图中分离出去。
优势
– 使用简单
– 表单对象化
– 支持多个表单字段
– 支持子表
– 轻松创建自定义表单字段
详见 Github : https://github.com/kristijanhusak/laravel-form-builder
5. Flash 通知
在保存了表单数据后,我会重定向到列表页,编辑页或者展示页。有了 Flash 通知,我们可以轻松的给到用户成功,警告或者错误的提示。
优势
– 使用简单
– 多个参数 (成功,错误,警告, 弹窗,语气等)
– 自定义视图
详见 Github : https://github.com/laracasts/flash
6. Laravel Menu package
如果你的应用需要很简单方便的根据用户角色或者权限来更改不同的菜单项的话,这个包你可不要错过了。
优势
– 使用简单
– 多视图复用
– 自定义
– 数据可填充性
– 可缓存
看这里看这里 https://github.com/spatie/laravel-menu
7. Laravel Activity Log
很多数据管理员都想记录他们用户的所有活跃记录。这个包可以很方便的记录你的用户何时何地的创建、更新实体的记录。外加,现在这个包还可以记录多个版本的实体间数据的变更。
优势
– 简单的实体实现
– 记录所有创建、更新实体的用户和次数
– 支持记录自定义信息(登录、登出等)
戳我呀 https://github.com/spatie/laravel-activitylog
8. Laravel Js Validation
这是我的菜!根据请求的数据对象自动进行前端验证是不是听起来就很赞? 对,没错!我们懒人的目标就是—代码越少越好!
优势
– 根据请求对象生成前端验证
– 不需要写任何 Javascript 代码(对,你没听错)
– 支持异步验证(唯一、是否存在、自定义规则等)
– 多语言
快点吧 https://github.com/proengsoft/laravel-jsvalidation
9. Persistent settings
如果你的应用包含比较多而且复杂的配置项(主题、logo、公司设置、API 设置、默认设置项等),那这个包就派上用场了。它在数据库中保存一个键值对(key => value)的配置信息,然后你就可以很方便的在应用中用辅助方法使用它们啦!
优势
– 可缓存
– 可加密
– 可上下文的设置项 (用户举例)
哪里获取呢? https://github.com/edvinaskrucas/settings
10. Multi-tenant
在开发 SASS 应用服务是,每个客户都有各自独立的数据库、域名和子域名,并且不会把这些都放到同一个代码仓库里。如果你有类似的需求,此项目既是为你准备的。
功能:
– 多数据库;
– 多域名和子域名;
– 自动生成 Apache 或者 Nginx 配置文件;
– 支持队列;
– 支持文件分开存储。
可以从这里获取: https://github.com/hyn/multi-tenant
额外推荐
11. Laravel IDE Helper — 可以让你的 PHPStorm 支持自动补全,支持的类型有 Model 、Facade 和数据库实体字段等。
https://github.com/barryvdh/laravel-ide-helper
12. 提供数组、字符串、对象相关的辅助函数:
https://github.com/letsdrink/ouzo-goodies
13. 自动将 PHP 数组转换为 Javascript 对象:
https://packagist.org/packages/laracasts/utilities