7

Я создал проект php в Netbeans 7.3. У меня есть класс (MYSQL_DB ). Когда я хочу получить доступ к его методам внутри файла, который я определил класс, он показывает мне это:NetBeans показывает методы

Обратите внимание, что это вне определения класса (без использования $this). Но когда я хочу получить доступ к его методам за пределами этого файла, он ничего не показывает мне:

NetBeans не удалось показать методы

В: Есть ли способ показать методы при вводе имени класса (например, первого изображения) во всех файлах?
Заранее спасибо!

2 ответа2

5

Я подозреваю, что проблема в том, что Netbeans не знает класс вашей переменной. (Это часто случается в PHP, будучи слабо типизированным.) Сразу после того, как вы присвоите значение переменной, вставьте специальный комментарий подсказки типа:

$database=someFunction(); /* @var $database DatabaseClass */

Эта подсказка сообщит Netbeans тип $ database, позволяя предлагать методы. Если у вас есть контроль над источником некоторой функции, вы также можете добавить подсказку. Смотрите https://blogs.oracle.com/netbeansphp/entry/defining_a_variable_type_in множество примеров.

3

Начните с добавления комментариев в виде подсказок кода, где ваши переменные объявлены. В свойствах класса используйте длинную запись для комментариев:

/**
 * @var \ClassName $varname
 */
 private $varname;

Внутри классов вы обычно можете использовать встроенные комментарии:

/* @var \ClassName $inlinevar */
$inlinevar = new ClassName();

Вам может потребоваться очистить кэш, это поможет, если автозаполнение не работает для классов в одном проекте. В Linux найдите в своем домашнем каталоге ~/ .cache/ .netbeans/ и удалите подкаталог для версии проекта (всегда делайте резервную копию в первую очередь, если что-то идет не так).

Если ваш класс живет в другом проекте, вам может потребоваться добавить путь к корневой папке для другого проекта, чтобы Netbeans мог сканировать эту папку для определения классов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .