Хорошо, я наконец перешел на PHP7. Мой код немного старый и будет отремонтирован. Некоторые из проблем:
class MagicClass
function MagicClass(){
//etc
}
Что дает предупреждение об устаревании во время исполнения:
Устаревший: методы с тем же именем, что и их класс, не будут
конструкторы в будущей версии PHP; MagicClass имеет устаревший
конструктор в
Это хорошо:
class MagicClass
function __construct(){
//etc
}
Как я могу получить проверку кода PhpStorm, чтобы предупредить меня о таких ошибках в моей текущей кодовой базе?
Не похоже, что PhpStorm v10 поддерживает этот конкретный случай. У него есть проверка «Совместимости с PHP 7», но он никак не помечает этот код (независимо от того, какой уровень языка вы выберете — будь то 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
не решает эту конкретную проблему. Я протестировал его с EAP версий 9.0.2, 10.0.3 и 11, и никто из них не жаловался на конструкторы в стиле PHP4.
Похоже, что проверка уровня языка фокусируется на использовании новых функций PHP больше, чем на устаревших.