Нет предложений в NetBeans

Вот уже несколько дней я использую NetBeans 6.8 для работы с PHP. Но даже если класс-файл включен, методы общедоступны и используется phpDoc, NetBeans каждый раз показывает в окне «Нет предложений».

Например. Я печатаю

$user->

и нажмите CTRL+Space, я ожидаю все методы и переменные, но они не показаны. идеи?


person Community    schedule 07.06.2010    source источник
comment
Вы используете проект NetBeans или просто просматриваете файлы? NetBeans проанализирует ваш проект, если он у вас есть, но не будет сканировать только общие файлы, даже если они включены, как я полагаю.   -  person Matt S    schedule 08.06.2010
comment
Я использую его для всего проекта, но не использую отладку (Zend, xdebug), возможно, из-за этого?   -  person    schedule 09.06.2010
comment
Я понял проблему более точно, см. мой новый вопрос для этого: stackoverflow.com/questions/2996711/   -  person    schedule 09.06.2010


Ответы (2)


 $foo = new Bar();

При нажатии клавиши Ctrl на панели (или правой кнопкой мыши -> Перейти к определению) вы должны перейти к классу Bar.
Если быть точным, к __construct().

Если netbeans не перескакивает, это означает, что он не знает, где определен класс Bar.
$foo-> ctrl+space Затем скажет "Нет предложений"

В твоем случае:

$user = new User();
$user->

Если $user является параметром:

/**
 * @param User $user
 */
 function myFunction($user) {
    $user->

проверьте, что у вас есть /**, а не только /*

Если $user извлекается через функцию:

 /**
  * @return User
  */
  function getUser() {
     // impl
  }
  $user = getUser();
  $user->
person Bob Fanger    schedule 08.06.2010
comment
Это не работает для включенных файлов, см. Мой новый вопрос: stackoverflow.com/questions/2996711/ - person ; 09.06.2010

Убедитесь, что netbeans знает, что хранится в $user. Каждый метод должен иметь правильную аннотацию @return либо со скалярным именем/массивом, либо с именем класса.

Если пользовательский класс называется User, ваш пользовательский геттер должен выглядеть так:

/**
@return User
*/
function getUser() {
    //some code
    return $user; //instance of User
}
person Mikulas Dite    schedule 07.06.2010
comment
Я пробовал это с @return, но это не имело никакого эффекта, кажется, что NetBeans просто игнорирует классы из других файлов, поскольку, кроме того, не отображаются никакие переменные. - person ; 08.06.2010
comment
вы, кажется, говорите о документах; Я считаю, что проблема не в отсутствии документов, а в том, что NetBeans не может найти методы. - person Jan K.; 09.06.2010