gpt4 book ai didi

php - 如何配置 PHPStan 以避免由特定类和/或魔术方法引起的误报?

转载 作者:行者123 更新时间:2023-12-03 22:09:53 24 4
gpt4 key购买 nike

在项目中使用 PHP RedBean 时,PHPStan 会报告如下问题:

87     Access to an undefined property RedBeanPHP\OODBBean::$token.

发生这种情况是因为 RedBean 的 OODBBean 类使用魔术方法将类属性与数据库表列进行逻辑绑定(bind)。 AFAIK,RedBean 实现该功能的方式没有任何问题。

有没有办法将 PHPStan 配置为忽略 RedBean(或任何其他类)的问题?或者忽略魔法方法可能导致的问题?

最佳答案

根据您的确切需要,您有多种选择。对于魔法属性:

  • 如果你的类可以动态包含任何属性,类似于 stdClass ,可以把类名放到universalObjectCratesClasses配置参数。见 README .
  • 如果你的类总是包含相同的魔法属性,你可以通过添加 @property 来定义它们。类上方的注释。
  • 您可以创建一个所谓的类反射扩展来描述您的 __get__set静态分析器的方法逻辑。这是定义在每种情况下对象上将存在哪些确切属性的可靠方法。通过避免误报,这使得 PHPStan 非常强大——它仍然会报告访问的属性,即使是用一种神奇的方式也没有定义。见 README更多细节。

  • 对于魔术方法,同样适用 3. 中的内容 - 您可以编写一个描述 __call 中的逻辑的扩展。用于静态分析仪。见 README更多细节。

    关于php - 如何配置 PHPStan 以避免由特定类和/或魔术方法引起的误报?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55062091/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com