Метод количественного определения расширенных методов PHP7, которые имеют разное количество аргументов для родительского

Я обновляю довольно большую кодовую базу с 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 на всей базе кода, но он, похоже, не решил эту проблему. Я не смог найти никаких других инструментов, которые могли бы обнаружить это.

Рад исправить все вручную, я просто должен быть уверен, что получаю каждый из них. Если кто-нибудь знает подход к их идентификации, это очень поможет.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]