kafkiansky / better-laravel
一套针对 Psalm 静态分析工具的规则集,有助于检测在使用 Laravel 框架时出现的常见问题。
Requires
- php: ^8.1
- ext-simplexml: *
- vimeo/psalm: ^5.0
Requires (Dev)
- laravel/framework: ^8.0
- weirdan/codeception-psalm-module: ^0.13.0
This package is auto-updated.
Last update: 2024-09-09 07:32:28 UTC
README
内容
安装
composer require kafkiansky/better-laravel --dev
动机
Laravel 是一个注重开发便捷性的框架。然而,虽然它提供了许多简单工具来快速实现生产就绪的解决方案,但也增加了更多选项,允许出现错误。本包为 Psalm 静态分析器提供了一系列插件,涵盖了众多已知问题。
钩子
不要扩展 ApplicationEventServiceProvider
您有多少次犯过继承正确 EventServiceProvider
的错误?例如,您有一个服务提供者 A
,在其中注册订阅者或监听器,然后在服务提供者 B
中继承它,在其中仅注册监听器或仅注册订阅者。因此,您冒着在调度器中重复注册订阅者或监听器的风险,因为 Laravel 将它们注册两次。
DontExtendApplicationEventServiceProvider
钩子将检测此类服务提供者,并防止它们从项目事件服务提供者继承。
不要在配置之外使用 Env
您可能听说过,当缓存配置时,env
函数总是返回 null。这是因为当 Laravel 在 bootstrap/cache/config.php
中看到缓存的配置文件时,不会加载环境变量。此钩子的工作原理相当简单:如果它看到对 env
函数的调用不在配置文件之外,它将显示错误。
⚠️ 重要限制:所有配置文件必须存储在 config
文件夹中。
配置选项必须存在
Laravel 允许您通过点表示法方便地处理配置。这既方便,因为允许您有无限嵌套的配置,又不方便,因为没有人验证此类配置,您可能会得到错误的名字。此钩子解析您项目中的所有配置文件,并检查您访问的选项确实存在。
⚠️ 重要限制:所有配置必须存储在 config 文件夹中,并且文件名必须与配置的命名空间(根)匹配。
例如,您在名为 api.php
的文件中有以下配置
return [ 'http' => [ 'uri' => 'https://httpbin.org', ], ];
当访问 api.http.ur
配置时,您将看到 Psalm 显示的错误,指出此类配置选项不存在。
测试
$ composer test
许可
MIT 许可证(MIT)。有关更多信息,请参阅许可文件。