PhpStorm: получить предупреждения проверки кода для " методы с тем же именем, что и их класс не будут конструкторами"


Хорошо, я наконец-то переключился на PHP7. Мой код немного устарел и будет обновлен. Некоторые из этих проблем таковы:

class MagicClass
    function MagicClass(){
        //etc
    }

Который выдает предупреждение об устаревании во время выполнения:

Устаревшие: методы с тем же именем, что и их класс, не будут конструкторы в будущей версии PHP; MagicClass имеет устаревший конструктор в

Это хорошо:

class MagicClass
    function __construct(){
        //etc
    }

Как я могу получить проверку кода PhpStorm, чтобы предупредить меня о таких ошибках в моем текущем кодовая база?

3 4

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 , существует встроенный контроль, называемый "конструктор старого стиля".

Введите описание изображения здесь

Введите описание изображения здесь