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

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

class MagicClass function MagicClass(){ //etc } 

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

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

Это хорошо:

 class MagicClass function __construct(){ //etc } 

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

Это не похоже на то, что 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 больше, чем на устаревших.