Методы автозаполнения Netbeans Классы Zend Model - PullRequest
0 голосов
/ 22 сентября 2011

У меня есть следующие классы моделей, однако автозаполнение netbeans 7.0.1 не работает для классов строк.

Класс модели:

class Application_Model_DbTable_Payments extends Zend_Db_Table_Abstract {
    protected $_name = 'payments';
    protected $_rowClass = 'Application_Model_Payment';

}

Класс строки:

class Application_Model_Payment extends Zend_Db_Table_Row_Abstract {
    public function setIdentifier($identifier = null){
        return $this->identifier = $identifier;
    }
}

Код:

$paymentsModel = new Application_Model_DbTable_Payments();
$payment = $paymentsModel->find(1)->current();// return an Application_Model_Payment Object 
$payment->setIdentifier();//doesn't appear on netbeans autocomplete, only Zend_Db_Table_Row methods appers

Как я могу заставить netbeans показывать методы класса строк?

1 Ответ

4 голосов
/ 16 ноября 2011

Поскольку netbeans интенсивно использует комментарии docblock (и в этом случае find является унаследованным методом), если вы явно не указали тип возврата в блоке комментария для метода, Netbeans на самом деле не знает, что делать.

Вы можете помочь ему, добавив блок, подобный следующему:

/* @var $variable ClassName */

как в вашем коде

$paymentsModel = new Application_Model_DbTable_Payments();

/* @var $payment Application_Model_Payment */
$payment = $paymentsModel->find(1)->current();// return an Application_Model_Payment Object 
$payment->setIdentifier();

Он будет «подсказывать» netbeans какчто это за переменная.

ОБНОВЛЕНИЕ: Вот пример того, как это сделать из объявления класса / метода.В этом примере $ что-то является экземпляром Application_Model_Token.

class User
{
  /**
   * @return Application_Model_Token
   */
  public function reset()
  {
    //Some code etc
    return $something
  }
}
...