Eclipse PDT — семантический анализ

У меня есть некоторые проблемы с 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, но он игнорирует его.

Есть ли способ избавиться от предупреждения, не выключая его?

1

Решение

Это исправлено. Вы можете написать в 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.
2

Другие решения

Семантический анализ не является частью 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 уже используют его).

2

По вопросам рекламы [email protected]