PHP库和工具
由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!
介绍
我们希望在 Filmin 启动的新项目能够稳定可靠。因此,除了遵循良好的编码规范外,我们还考察了一些能够帮助我们提升项目质量的 PHP 库和工具。
以下是我们分析的工具列表,以及它们在 Github 存储库中的描述,不包括众所周知的工具或库,例如 PHPUnit。
这些工具大多是命令行界面 (CLI) 命令,因此可以集成到持续集成/持续交付 (CI/CD) 流程中。其他一些工具可以集成到集成开发环境 (IDE) 中,例如 PHPStorm 中的 Psalm 或 PHPStan。还有一些是我们项目中使用的库。
这份清单基于我们的经验,并深受以下因素影响:
- https://twitter.com/ramsey/status/1396592906102722561
- https://twitter.com/lulco/status/1397813303037079553
- https://twitter.com/ArkadiuszKondas/status/1338485275002068993
- 2019 年 PHP 质量保证的积极进取 | Marco Pivetta
图书馆
- brick/date-time:PHP 的日期和时间库
- thecodingmachine/safe:所有 PHP 函数都已重写,现在会抛出异常而不是返回 false,支持 PHP8。
- 战术家:一个小型、灵活的指挥总线
- ronanguilloux/isocodes:PHP 库 - 用于验证 ISO、国际金融、公共管理、GS1、制造业、多个国家/地区的电话号码和邮政编码等标准的验证器
- 盒子/喷嘴:以快速且可扩展的方式读取和写入电子表格文件(CSV、XLSX 和 ODS)。
- league/flysystem:本地和远程文件系统的抽象
- 序列化器:
- Symfony 序列化器组件:序列化器组件旨在将对象转换为特定格式(XML、JSON、YAML 等),反之亦然。
- JMS 序列化器:该库允许您序列化和反序列化任意复杂度的数据。目前,它支持 XML 和 JSON。
- Fractal:Fractal 为复杂的数据输出(例如 RESTful API 中的数据)提供了一个展示和转换层,并且与 JSON 配合使用效果非常好。您可以将其视为 JSON/YAML 等数据的视图层。
工具
代码质量
- Deptrac:保持架构清晰。
- PHP Insights:通过控制台即时进行 PHP 质量检查
- GrumPHP:一款 PHP 代码质量工具。
- churn-php:发现需要重构的文件。
- Psalm:一款用于查找 PHP 应用程序错误的静态分析工具。插件:
- boesing/psalm-plugin-stringf:Psalm 插件,用于提供 sprintf、printf、sscanf 和 fscanf 函数的更多详细信息。
- hectorj/safe-php-psalm-plugin : vimeo/psalm 插件,适用于 thecodingmachine/safe。
- marartner/psalm-no-empty:Psalm 插件,用于检测 empty() 的使用情况。
- marartner/psalm-strict-equality:Psalm 插件,用于强制执行严格相等性。
- psalm/plugin-phpunit:Psalm 的 PHPUnit 插件。
- psalm/plugin-symfony:Psalm Plugin for Symfony。
- weirdan/doctrine-psalm-plugin:让 Psalm 更好地理解 Doctrine 的存根。
- PHPStan:PHP静态分析工具 - 无需运行代码即可发现代码中的错误!插件:
- ergebnis/phpstan-rules:为 phpstan/phpstan 提供附加规则。
- spaze/phpstan-disallowed-calls:用于检测不允许的调用以及常量和命名空间使用的 PHPStan 规则
- roave/no-floaters:防止 IEEE-754 浮点错误的静态分析规则。
- 更多扩展程序
测试
- Infection:PHP 变异测试库。插件:
- roave/infection-static-analysis-plugin:在突变测试之上进行静态分析——防止逃逸突变体因静态分析而被判定为无效。
- bitexpert/captainhook-infection:Captain Hook 插件,仅针对提交中已更改的文件运行 InfectionPHP。
- roave/no-leaks:用于检测代码和测试中内存泄漏的 PHPUnit 插件
- lulco/populator:允许向数据库填充虚假数据。
- OpenAPI PSR-7 消息(HTTP 请求/响应)验证器:它根据 OpenAPI 规范验证 PSR-7 消息(HTTP 请求/响应)。
- Paratest:PHPUnit 的并行测试
作曲工具
- ComposerRequireChecker:一个命令行工具,用于检查特定的 Composer 包是否使用了并非其直接 Composer 依赖项一部分的导入符号。
- composer-unused:通过扫描代码显示未使用的 Composer 依赖项
- composer-normalize:提供一个用于规范化 composer.json 的 composer 插件。
安全
- roave/security-advisories:安全公告,以简单的编辑器排除列表形式呈现,每日更新
- roave/backward-compatibility-check:用于比较类 API 的两个版本以检查向后兼容性冲突的工具
- 本地 PHP 安全检查器:PHP 安全漏洞检查器
一般的
- Robo:适用于 PHP 的现代化任务运行器
- CaptainHook:一款非常灵活的 PHP 开发人员 Git 钩子管理器
结论
PHP 社区编写了大量工具,可以帮助我们提高项目质量,并简化开发人员的工作。我们需要选择最适合我们项目和使用场景的工具。
你呢?你知道有哪些不在列表中的有趣工具吗?
文章来源:https://dev.to/filmineng/php-libraries-and-tools-3blf