У меня есть некоторые проблемы с PHP семантического анализа в Eclipse PDT.
Я получаю предупреждение «неопределенная переменная» в таких случаях:
a.php:
<?php
$a = "var";
?>
b.php:
<?php
/* @var $a String */
/* @var $var String */
include a.php;
echo $a; // Eclipse says $a is undefined
$arr = ["var" => "val"];
extract($arr);
echo $var; // Eclipse says $var is undefined
?>
Я пытался уведомить Eclipse об этих переменных с помощью синтаксиса PhpDoc, но он игнорирует его.
Есть ли способ избавиться от предупреждения, не выключая его?
Это исправлено. Вы можете написать в b.php
/**
* @var string $a
* @var MyClass $otherVar
*/
echo $a; // No warning should be shown as if $a is undefined.
$otherVar-> // Autocomplete will show you MyClass methods and properties.
Семантический анализ не является частью Eclipse PDT. Эта функция является частью PEX Core-Plugin https://github.com/pdt-eg/Core-Plugin
Чтение переменной информации из комментариев все еще в моем списке задач: https://github.com/pdt-eg/Core-Plugin/issues/103
РЕДАКТИРОВАТЬ:
PDT Начиная с 5.0 есть собственная встроенная семантическая проверка. Начиная с версии 5.3 вы можете настроить серьезность проблемы (Ingore / Info / Warning / Error). С 6.0 PEX Variable Validator (не используется / не определено) был принят. Мы также добавили API для расширений валидации (плагин Symfony и Doctrine уже используют его).