kafkiansky/better-laravel

一套针对 Psalm 静态分析工具的规则集,有助于检测在使用 Laravel 框架时出现的常见问题。

v0.2.0 2023-08-09 05:16 UTC

This package is auto-updated.

Last update: 2024-09-09 07:32:28 UTC


README

test static analysis Software License Total Downloads

内容

安装

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)。有关更多信息,请参阅许可文件