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