2011-09-21 15 views
0

但我有以下模型類netbeans 7.0.1 autocomplete不適用於行類。Netbeans自動完成方法Zend模型類

模型類:

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

} 

Row類:

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的顯示行類的方法?

+0

您沒有任何類叫做Application_Model_DbTable_Payments,你有Application_Model_DbTable_Paymenty和Application_Model_Payment – ufucuk

+0

行動錯誤的類型,我只是糾正它。 – dextervip

回答

4

由於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作爲變量是什麼。

更新:這是一個從類/方法聲明中執行它的示例。在這個例子中,$ something是Application_Model_Token的實例化。

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

無論如何,如果類分配發生在Class方法中,則將此行移入DocBloc方法中?我寧願不必在每個TBH – Sjwdavies

+0

的地方都包含這些行註釋 - 只需在您的方法docblock的返回中放入類聲明(這與Zend_Db有點分離,因爲netbeans無法計算出什麼有時會返回,因爲它不知道沒有運行什麼類的某些對象(例如行類) –

+0

對不起,是一個痛苦,但你能解釋一下你的意思嗎? – Sjwdavies