PHP 升级:使用 PHPStan 阻止回归

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

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

什么是升级回归?

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

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

安装 phpstan 和弃用规则扩展

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

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.neonparameters:    # 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'

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

立即学习“PHP免费学习笔记(深入)”;

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

结论

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1247461.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月9日 19:30:07
下一篇 2025年12月8日 13:28:39

相关推荐

  • 小 Swoole Symfony Http 客户端 0

    Small Swoole Symfony Http Client 的第一个版本来了。 这是一个基于 swoole 的 Symfony HTTP 客户端实现,符合 Symfony HttpClientInterface,用于高性能异步 HTTP 请求。 Swoole 和 OpenSwoole 兼容性重…

    2025年12月9日
    000
  • 端到端测试中的 PHP 函数代码覆盖率

    在端到端测试中,利用 phpunit 和 xdebug 可测量 php 函数代码覆盖率,以识别未测试的代码路径,步骤包括:安装 phpunit 和 xdebug启用 php.ini 中的 xdebug使用 phpunit 创建 e2e 测试用例运行测试并生成覆盖率报告查看覆盖率报告以识别未覆盖的代码…

    2025年12月9日
    000
  • PHPUnit 中的 PHP 函数代码覆盖率

    phpunit 中的 php 函数代码覆盖率可以通过以下步骤实现:安装 phpunit:在项目中安装 phpunit。集成 phpunit:更新 composer.json 文件加入 psr-4 自动加载。创建测试类:在 tests/ 目录下创建测试类,包含要测试的函数。启用代码覆盖率:在 phpu…

    2025年12月9日
    000
  • php函数版本管理与升级最佳实践

    最佳实践:管理 php 函数版本以确保代码稳定性和安全性。使用 composer 指定依赖关系的版本。渐进式升级函数版本,每次升级一个版本。使用测试用例验证升级后的功能。在分阶段环境中测试升级,再部署到生产环境。 PHP 函数版本管理与升级最佳实践 在维护 PHP 应用程序时,管理函数版本至关重要,…

    2025年12月9日
    000
  • php函数跨平台兼容性错误的应对指南

    在不同 php 版本和操作系统之间迁移代码时,可通过以下步骤应对函数跨平台兼容性错误:检查兼容性问题,使用 phpinfo(),尝试不同操作系统,查阅 php 手册。使用 shims 提供兼容层,实现不兼容函数。编写平台特定代码处理不同行为,如针对 windows 和其他平台编写 tempnam()…

    2025年12月9日
    000
  • php函数单元测试实战技巧

    php 单元测试有利于保证代码质量,技巧如下:使用测试框架(如 phpunit)进行单元测试,定义测试用例、预期的结果,并编写测试用例(如求和函数测试)。高级技巧包括断言验证、模拟依赖项行为、覆盖率检查和持续集成。这些技巧有助于编写有效且可靠的 php 函数单元测试,以提升代码质量。 PHP 函数单…

    2025年12月9日
    000
  • php函数与第三方库集成策略

    php 与第三方库集成策略有三个:1. 使用 composer;2. 手动下载并包含;3. 使用 composer 的自动加载。选择最合适的策略取决于库大小、项目需求和个人偏好。遵循这些实践,可以轻松集成第三方库,提高 php 项目的开发效率和代码质量。 PHP 函数与第三方库集成策略 在 PHP …

    2025年12月9日
    000
  • PHP 函数单元测试中的自动化报告生成

    在 php 中进行函数单元测试时,自动化报告生成对于快速分析测试结果至关重要。以下步骤可以帮助您使用 phpunit 和 phpmetrics 生成自动化报告:安装 phpunit 和 phpmetrics。创建单元测试。在 phpunit.xml 中配置 phpmetrics 报告生成。运行 ph…

    2025年12月9日
    000
  • php函数最佳实践和设计模式

    php 函数最佳实践和设计模式最佳实践:遵循 psr-12 命名规则使用参数类型提示指定返回值类型使用默认值记录异常设计模式:单例模式:确保只有一个类实例观察者模式:允许对象订阅其他对象的状态变更 PHP 函数最佳实践和设计模式 编写可维护、可扩展且高效的 PHP 函数至关重要。遵循最佳实践并应用设…

    2025年12月9日
    000
  • PHP 函数单元测试中的版本控制

    PHP 函数单元测试中的版本控制 在 PHP 项目中进行单元测试时,保持代码库和测试的同步至关重要。本文介绍了使用版本控制系统(如 Git)管理 PHP 函数单元测试的方法,包括如何追踪测试代码更改、管理不同版本的测试以及与主代码保持一致。 追踪测试代码更改 在将单元测试添加到代码库之前,请初始化一…

    2025年12月9日
    000
  • PHP 函数与 C 扩展交互的跨平台兼容性

    php 扩展与 c 扩展交互时跨平台兼容性存在问题,包括头文件包含、数据类型和 api 调用差异。解决这些问题的方法有:使用条件编译根据平台定义代码;创建平台抽象层来隐藏系统差异;配置扩展加载以根据平台进行调整;使用跨平台库来处理特定平台相关的任务。 PHP 函数与 C 扩展交互的跨平台兼容性 PH…

    2025年12月9日
    000
  • PHP 函数如何使用 gRPC 调用外部函数?

    通过以下步骤使用 php 函数调用外部 grpc 服务:安装 php grpc 库。定义 proto3 消息。使用 protoc 命令生成 php 类。编写 php 函数和 grpc 服务。启动 grpc 服务器。使用 grpc 客户端调用外部 grpc 服务。 使用 PHP 函数通过 gRPC 调…

    2025年12月9日
    000
  • Laravel 入门:查询生成器初学者指南

    laravel 的 查询生成器 提供了一个强大、流畅的界面,用于在 php 中构建 sql 查询。它允许您以富有表现力的、类似 sql 的语法与数据库交互,同时抽象出大部分复杂性。 我们将演练 laravel 应用程序中的典型用例,使用查询生成器执行各种任务,例如选择、插入、更新和删除数据。 第 1…

    2025年12月9日
    000
  • 什么是 PHP CodeSniffer?

    PHP CodeSniffer 是一种流行的工具,用于检测 PHP 代码中违反编码标准的情况。它通过分析 PHP、JavaScript 和 CSS 文件以遵守定义的编码标准,帮助保持代码库的一致性和质量。 PHP CodeSniffer 的主要特性 编码标准执行: CodeSniffer 根据预定义…

    2025年12月9日
    000
  • 如何使用 PHP 函数调用外部函数并获取其输出

    php exec() 函数可用于调用外部函数并获取其输出。其语法为:exec(string $command, array &$output = null, int &$return_var = null) : bool。参数包括:$command(要执行的命令字符串)、$outpu…

    2025年12月9日
    000
  • 如何使用 PHP 测试库编写单元测试

    如何在 PHP 中使用 PHPUnit 编写单元测试 简介 单元测试是一种用于测试单个软件函数或方法是否按预期运行的技术。PHPUnit 是一个用于 PHP 的流行单元测试框架,在编写健壮且可维护的代码时非常有用。 安装 PHPUnit 立即学习“PHP免费学习笔记(深入)”; 要在 PHP 中使用…

    2025年12月9日
    000
  • 如何使用 PHPUnit 进行 PHP 函数单元测试

    phpunit 是一个用于 php 函数单元测试的框架,安装后可在测试用例中使用断言和模拟工具对预期行为进行验证。具体步骤如下:安装 phpunit。创建测试用例,其中包含测试方法和断言。运行 phpunit 从命令行执行测试。 如何使用 PHPUnit 进行 PHP 函数单元测试 简介 PHPUn…

    2025年12月9日
    000
  • 如何执行 PHP 函数单元测试?

    如何执行函数单元测试?使用 php 中的 phpunit 框架分三步执行函数单元测试:安装 phpunit,创建测试用例类,编写单元测试方法。断言用于验证结果。 如何在 PHP 中执行函数单元测试? 什么是单元测试? 单元测试是一种软件测试方法,它验证软件代码中的单个函数或方法的正确性。它有助于确保…

    2025年12月9日
    000
  • PHP 函数异常处理与性能优化

    php 函数异常处理与性能优化一、异常处理异常处理机制允许优雅地捕获和处理运行时错误。通过 try…catch 块捕获 throwable 类的子类异常。二、性能优化使用高效的数据结构(数组、哈希表)。减少函数调用。缓存结果。使用 composer 自动加载器。实战案例异常处理:除数为 …

    2025年12月9日
    000
  • PHP 函数的单元测试流程

    在 php 中进行函数单元测试的步骤:安装 php 单元测试框架,如 phpunit。创建一个测试文件,并编写测试用例,包括实际输出、预期输出和比较方法。运行测试命令,如 phpunit,以执行测试。实战案例:对斐波那契函数进行单元测试,设置多个测试场景,验证不同输入下的预期输出是否与实际输出一致。…

    2025年12月9日
    000

发表回复

登录后才能评论
关注微信