laravel 常用插件记录

记录一些常用插件


livewire/livewire

Livewire 是 Laravel 的全栈框架,可简化构建动态接口的过程,且不会为 Laravel 带来不必要的麻烦。
一个开发利器,见文档
https://github.com/livewire/livewire


Eloquent 条件查询 ——tucker-eric/eloquentfilter

  • 搜索是每个项目中必不可少的功能,我们需要通过不同的请求数据,筛选出想要的数据,有时候你会发现查询条件很多的时候,Controller 中的代码会越来越多,你可能会想优化一下这部分逻辑,tucker-eric/eloquentfilter 就是这样一个扩展包,帮助我们优化搜索这部分逻辑。
    https://github.com/Tucker-Eric/EloquentFilter

逆向 Seed 生成器 ——orangehill/iseed#

  • 这一节我们来了解一下 orangehill/iseed 这个扩展包,单看描述可能不太理解这个包的作用,它是一个逆向的 Seed 文件生成器,也就是根据数据库中已存在的数据,帮助我们生成 Seed 文件。
  • 这个扩展包的作用是将数据库中的数据通过 Seed 文件导出,方便我们再次将数据导回数据库。比起我们直接从数据库导出 sql 文件,orangehill/iseed 帮助我们生成了 Seed 文件,这样我们可以进行修改,并提交到代码仓库中,维护性得到了大大的提高。
    https://github.com/orangehill/iseed

为你的项目增加漂亮的 Markdown 文档 ——binarytorch/larecipe


角色权限控制组件 —— spatie/laravel-permission

我们常说的 RBAC 就是基于角色的权限访问控制(Role-Based Access Control),我们会利用用户,角色和权限的关系,决定用户能做什么事,不能做什么事。在 RBAC 我们首先需要了解:

  1. 用户(User)—— 拥有角色的主体;
  2. 角色(Role)—— 一定数量的权限的集合;
  3. 权限 (Permission)—— 是否可以做具体的某个操作。

具体的权限是判断是否能做某件事的决定因素,一个角色可以拥有多个权限,角色和权限之间是多对多的关系。给用户赋予某个角色,用户就可以得到角色拥有的所有权限,用户就可以干某件事,同样用户与角色也是多对多的关系。总结一下就是用户可以有多个角色,角色可以有多个权限,用户的任意一个角色中拥有某个权限,他就可以做这个权限对应的事。
https://github.com/spatie/laravel-permission


应用自我诊断测试 —— beyondcode/laravel-self-diagnosis

当我们搭建或者部署一个新项目的时候,比如

  • 新同事加入进来进行开发;
  • 搭建一个测试环境;
  • 项目上线进行环境部署。

无论我们通过何种方式搭建一个新的项目,都需要进行一些测试,确保环境是正确的,包括数据库是否配置正确,Redis 是否链接正确,目录权限是否正确,PHP 扩展是否都已经安装等等。凭借经验以及必要的测试,保证项目的环境正确可用。
https://github.com/beyondcode/laravel-self-diagnosis


Excel 处理工具 ——maatwebsite/excel (3.0 版本)


嵌套集合模型 ——kalnoy/nestedset


数据查询缓存 ——watson/rememberable

  • 数据是每个系统中都十分必要的,适当的增加缓存可以缓解数据库查询的压力,watson/rememberable 就是这样一个可以方便 Eloquent 模型缓存的扩展包。
    https://github.com/dwightwatson/rememberable

数据库管理工具 ——protoqol/prequel

github.com/Protoqol/Prequel 是一个 数据库管理工具,可以用来替代 phpMyAdmin,界面非常的简洁,设计是基于 Laravel Telescope 。

http://github.com/Protoqol/Prequel


代码生成工具 ——codedungeon/laravel-craftsman

Laravel Craftsman 是一个命令行工具,帮助我们快速生成基础的项目代码。
https://github.com/mikeerickson/laravel-craftsman


解析项目中的 Composer 依赖 ——lubusin/laravel-decomposer

扩展包 lubusin/laravel-decomposer 可以解析已安装的软件包及其相关的依赖,功能非常简单,但是很实用。
https://github.com/lubusIN/laravel-decomposer


翻译辅助工具 ——barryvdh/laravel-translation-manager

如果你的项目是一个国际化的项目,需要切换不同的语言环境,那么翻译就是十分重要的一个功能了。翻译一直是一件麻烦的事情,需要编辑不同的语言文件,准备好对应的翻译,今天要介绍的扩展包 barryvdh/laravel-translation-manager 或许能让你的翻译工作变得更加轻松。
https://github.com/barryvdh/laravel-translation-manager


Laravel 本地化功能增强,切换项目语言 ——mcamara/laravel-localization

对于一个多国语言的项目,切换语言是一个很重要的功能
https://github.com/mcamara/laravel-localization


获取国家详细信息 —— rinvex/countries

rinvex/countries 是一个获取国家详细信息的扩展包,包括了国家名称,国家代码,国际拨号代码,货币,语言,国家边界等等信息。如果正在做一个国际化的项目,如果没有这个扩展包,很可能需要自己维护一个国家信息的数据库,涉及到各种 ISO 标准,以及数据的更新,其实是很麻烦的。
这个扩展包十分的轻量,不依赖任何的其他的扩展包,只是要求 PHP 版本大于 7,数据都是通过 Json 保存在本地,查看一下扩展包的介绍 github.com/rinvex/countries#data-s... ,它的数据也是来自于一些开源的项目,还是提供了非常多的方法获取我们需要的信息
https://github.com/rinvex/countries


定时任务 Web 控制台 —— studio/laravel-totem

在 Laravel 配置定时任务其实是很简单的,只需要将任务配置在 app/Console/Kernel.php 中就可以了。今天的这个扩展包 studio/laravel-totem 会让定时任务的管理和使用变得更加的方便,它提供了一个定时任务的 Web 控制台:

  1. 可以查看项目中有哪些计划任务;
  2. 获取任务下次执行的时间;
  3. 可以手动执行计划任务;
  4. 能够快速的通过 Web 界面 添加 / 修改 / 删除定时任务;
  5. 统计记录定时任务的执行情况。
    https://github.com/codestudiohq/laravel-totem

API 动态查询参数 —— spatie/laravel-query-builder

我们都会希望自己的接口足够灵活,以满足客户端不同的需求,所以一般都会实现这么几个功能:
让接口嵌套返回额外的资源,需要提供 include 参数,如果你学过第三本教程一定比较熟悉;为了对数据进行过滤,会提供 filter 参数;满足排序的需求,会提供 sort 参数;只返回客户端需要的字段,可以提供 fields 参数等等。
spatie/laravel-query-builder 这个扩展包依然是来自我们熟悉的组织 spatie,主要的作用就是为接口提供上面的这几个功能。
https://github.com/spatie/laravel-query-builder


Markdown 解析器 ——graham-campbell/markdown

将 Markdown 渲染成 HTML 是很常见的需求,解析器也很多,今天介绍的这个是一个下载量比较高的扩展包 graham-campbell/markdown,看它的说明知道它是一个 CommonMark 的封装,CommonMark 是一个 Markdown 的规范,依赖了扩展包 league/commonmark
在 Laravel 中使用这个扩展包非常的方便
https://github.com/GrahamCampbell/Laravel-Markdown


项目代码统计 ——wnx/laravel-stats

今天介绍的这个扩展包 github.com/stefanzweifel/laravel-stats 是用来做代码统计的,它可以帮助我们分析整个项目的每个功能使用了多少个类,方法,写了多少行等等,扩展包能直观的展示出代码的统计结果,方便我们发现问题,做接下来的代码优化。
https://github.com/stefanzweifel/laravel-stats


模块化管理工具 ——nwidart/Laravel-modules

当我们开发大型项目的时候,经常需要进行一些模块化的功能划分,这样能让代码更加的清晰,也方便维护。那么模块化开发比较好用的工具就是今天这个扩展包 github.com/nWidart/laravel-modules
https://github.com/nWidart/laravel-modules


快速创建 enum 枚举类 —— bensampo/laravel-enum

对于模型中的各种状态,类型等数据,需要提前进行定义,方便之后的逻辑判断。你可能会直接使用 mysql 的 enum 枚举字段,或者是在模型中定义 STATUS_PAID 这样的常量来定义各种状态,然后再定义一个 map 属性,给常量添加对应的描述。
https://github.com/BenSampo/laravel-enum


利用隐藏输入框诱捕灌水机 ——spatie/laravel-honeypot

有时候会有一些灌水机在项目中提交一些垃圾信息以及广告,大部分的灌水机其实并不智能,只是识别页面中的表单,然后填充,并尝试提交,所以添加一个隐藏的输入框,让灌水机填充,只要填充了内容,我们就认为这不是一个正常的操作,做一些过滤就可以了。
利用今天的这个扩展包,github.com/spatie/laravel-honeypot 实现起来其实非常简单,这个扩展包也是来自我们熟悉的组织 spatie。
https://github.com/spatie/laravel-honeypot


让验证规则可以复用 —— illuminatech/validation-composite

illuminatech/validation-composite 是一个可以让验证规则可以复用的扩展包。
https://github.com/illuminatech/validation-composite


在 Blade 模板中使用过滤器 Filters —— thepinecode/blade-filters

也许你使用过其他语言的模板引擎,会有过滤器这样的功能,那在 Laravel 的 Blade 中想要使用类似的功能,可以使用这个扩展包。
github.com/thepinecode/blade-filters


管理营业时间 ——spatie/opening-hours#

如果你的项目中有关于营业时间相关的业务,一般需要记录分两个时间,开始营业以及结束营业,但是工作日,周末,以及节假日的工作时间都有可能不同,想要很好的管理其实还有些工作要做,今天介绍的这个扩展包 github.com/spatie/opening-hours 应该非常有帮助。
这是一个 PHP 的扩展包,并不依赖 Laravel。
https://github.com/spatie/opening-hours

--欢迎大家来交流反馈。
原文地址:https://www.cnblogs.com/hhyl/p/13473229.html