0

我正在将一个相当大的代码库从 PHP 5.6 升级到 PHP 7.2。

代码中有数千处扩展类包含具有不同数量的父方法参数的方法。例如:

class SomeBaseClass {
    function someMethod($arg1, $arg2, $arg3) {
        ...
    }
}

class SomeOtherClass extends SomeBaseClass {
    function someMethod($arg1) {
      //Doesn't care about the other args, so doesn't specify them as params
    }
}

这会在 PHP 7.2 中导致致命错误。

修复显然是为每个参数添加默认值。

例如:

 class SomeOtherClass extends SomeBaseClass {
        function someMethod($arg1, $arg2=null, $arg3=null) {
          ...
        }
    }

但这要求我知道所有出现这种情况的地方。

我正在尝试找到一种方法:

  • 放宽错误检查,以便 PHP 在遇到此错误时不会抛出致命错误。

或者

  • 建立某种列表,准确显示哪些函数违反了此规则。

我在整个代码库上运行了一个 php 7.2 linter,但它似乎没有解决这个问题。我找不到任何其他可以检测到这一点的工具。

很高兴手动修复它们,我只需要确保我得到了它们中的每一个。如果有人知道一种识别它们的方法,那将有很大的帮助。

4

0 回答 0