您的位置 首页 编程知识

PHP 升级:使用 PHPStan 阻止回归

照片由 ron mcclenny 在 unsplash 上拍摄 通常,当人们想到 phpstan 时,他们通常…

PHP 升级:使用 PHPStan 阻止回归
照片由 ron mcclenny 在 unsplash 上拍摄

通常,当人们想到 phpstan 时,他们通常会想到改进类型覆盖率。这实际上只是 phpstan 能力的一小部分。在本文中,我们将学习如何使用它来停止升级回归。

什么是升级回归?

升级回归是指您希望删除应用程序中的某些功能。这可能是您的应用程序中的代码或您已安装的依赖项中的代码。

在尝试执行升级时,我们通常无法一次性完成所有操作。相反,我们必须进行一些小的增量改变。同样,当我们这样做时,我们也不希望其他开发人员继续使用已弃用的方法和属性。在这种情况下,那些新方法调用等是您升级应用程序进度的倒退。

安装 phpstan 和弃用规则扩展

要开始解决升级回归问题,第一步是安装 phpstan(如果尚未安装)。您可以通过 安装它:

composer require --dev phpstan/phpstan 
登录后复制

接下来,您需要添加弃用规则扩展,该扩展专门帮助跟踪代码库中已弃用的方法、属性和类的使用情况:

composer require --dev phpstan/phpstan-deprecation-rules 
登录后复制

安装后,您可以将 phpstan 配置为使用弃用规则,方法是将其添加到 phpstan.neon 配置文件中:

includes:     - vendor/phpstan/phpstan-deprecation-rules/rules.neon 
登录后复制

使用此设置运行 phpstan 现在将标记代码库中任何已弃用的方法、属性或类。这是防止升级回归的重要步骤,因为在使用已弃用的代码时您会收到通知。然后,您可以重构这些实例,以确保您的应用程序转向更新的、受支持的功能。

使用“不允许的呼叫”扩展功能更进一步

虽然弃用规则扩展可捕获已弃用的代码,但 disallowed calls 扩展提供了一种方法来阻止特定函数调用、方法调用,甚至您不再希望在代码库中允许的整个类。这对于对代码进行更细粒度的控制特别有用,例如没有弃用警告的代码。

composer require --dev spaze/phpstan-disallowed-calls 
登录后复制

安装后,您需要在 phpstan.neon 文件中对其进行配置。以下是如何禁止某些方法调用或函数的示例:

includes:     - vendor/phpstan/phpstan-deprecation-rules/rules.neon     # add the extension     - vendor/spaze/phpstan-disallowed-calls/extension.neon  parameters:     # You can see more example at https://github.com/spaze/phpstan-disallowed-calls/blob/main/docs/custom-rules.md     disallowedMethodCalls:         -             method: 'PotentiallyDangerousLogger::log()' # `function` is an alias of `method`             message: 'use our own logger instead'             errorTip: 'see https://our-docs.example/logging on how logging should be used'Begin writing your own rules     disallowedFunctionCalls:         -             function: 'var_dump()' # `method` is an alias of `function`             message: 'use logger instead' 
登录后复制

这个扩展非常全面,这意味着您将能够涵盖大多数场景。当然,可能在某些情况下不起作用,为此最好的办法就是开始学习编写自己的规则。

立即学习“”;

这是我们将在另一篇文章中讨论的内容。

结论

使用 phpstan 捕获升级回归是一种使升级过程变得更容易的明智方法,尤其是在大型开发团队中。将 phpstan 应用于您的持续集成设置

以上就是PHP 升级:使用 PHPStan 阻止回归的详细内容,更多请关注php中文网其它相关文章!

本文来自网络,不代表四平甲倪网络网站制作专家立场,转载请注明出处:http://www.elephantgpt.cn/2118.html

作者: nijia

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

联系我们

联系我们

18844404989

在线咨询: QQ交谈

邮箱: 641522856@qq.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部