PhpStorm: получить предупреждения проверки кода для " методы с тем же именем, что и их класс не будут конструкторами"
Хорошо, я наконец-то переключился на PHP7. Мой код немного устарел и будет обновлен. Некоторые из этих проблем таковы:
class MagicClass
function MagicClass(){
//etc
}
Который выдает предупреждение об устаревании во время выполнения:
Устаревшие: методы с тем же именем, что и их класс, не будут конструкторы в будущей версии PHP; MagicClass имеет устаревший конструктор в
Это хорошо:
class MagicClass
function __construct(){
//etc
}
Как я могу получить проверку кода PhpStorm, чтобы предупредить меня о таких ошибках в моем текущем кодовая база?
3 ответа:
Не похоже, что PhpStorm v10 поддерживает этот конкретный случай. Он имеет проверку "совместимость с PHP 7", но он никак не помечает этот код (независимо от того, какой уровень языка PHP вы выбираете-будь то 5.6 или 7).
Решение заключается в установке плагина"PHP Inspection (EA Extended)" - у него есть такая проверка, и он будет работать, даже если вы выберете 5.x как уровень языка PHP.
Пожалуйста, обратите внимание: Этот плагин имеет много проверок, некоторые из которых вы можете рассмотреть неправильно / бесполезно и т.д.. таким образом, у вас может возникнуть необходимость пройти каждый дополнительный осмотр, предоставляемый этим плагином, и отключить его, если это необходимо.
В диалоговом окне
Preferences
(на OSX) илиSettings
(на Windows и Linux) выберитеLanguages & Frameworks
->PHP
в списке слева установите флажокPHP language level
. Если вашPhpStorm
не очень старый, то вы должны иметь версию PHP 7 в этом списке.
PhpStorm
использует выбранную версию PHP для проверки кода на наличие синтаксических проблем. Для этого не нужно устанавливать указанную версию PHP (я думаю, она поставляется с интерпретаторами.)После выбора версии PHP перейдите в раздел
Editor
->Inspections
(также в левая сторонаPreferences
/Settings
окно) затем в правой части убедитесь, чтоPHP
->General
->Language Level
инспекция проверена. В его описании говорится:Проверяет соответствие языковых функций, используемых в исходном коде, выбранному уровню языка. (т. е. черты могут быть использованы только в PHP 5.4). Требуемый уровень языка задается в конфигурации проекта (Project Settings | PHP).
Обновить
По-видимому, текущие версии
PhpStorm
не справиться с этим конкретным вопросом. Я протестировал его с версиями 9.0.2, 10.0.3 и 11 EAP, и никто из них не жалуется на конструкторы в стиле PHP4.Похоже, что проверка языкового уровня фокусируется на использовании новых возможностей PHP больше, чем на устаревших.
Начиная с PhpStorm 2017.1 , существует встроенный контроль, называемый "конструктор старого стиля".