2012-12-17 18 views
6

ho trovato un modo per dire tipo NetBeans di variabili in modo tale:Definizione tipo di variabile in NetBeans PHP

/* @var $variablename Type */ 

Tuttavia, in questo caso non ci sono accenni (database è la mia classe):

//model.php 
abstract class Model { 
     /* @var $db Database */ 
     protected $db; 
     (...) 
} 

//Mymodel.php 
class MyModel extends Model { 
     (...) 
     $this->db-> //no hints 
     (...) 
} 

E 'Netbeans limitare o piuttosto il mio errore?

+0

Ebbene, tutte le classi (Database, modello e MyModel) file si trovano nella stessa cartella, in classe Modello Ho banca dati suggerimenti, comunque li ho anche senza questo commento, in MyModel ho suggerimenti dalla classe genitore, ma non ho suggerimenti con MyModel-> db. Versione 7.2 – Andy

+0

Il tipo di variabile deve precedere il nome della variabile, dovrebbe leggere '@var Database $ db' piuttosto che il contrario. Altre possibili fonti di problemi: percorso di inclusione errato (puoi STRG + fare clic sulla tua variabile $ db?) O accesso alla proprietà in classe piuttosto che nel metodo di classe. – SaschaM78

risposta

4

Prima di tutto, definire il tipo di variabile prima, in questo modo:

/* @var Database $db This is my Database object */ 

E in secondo luogo vorrei suggerire di usare phpdoc commentando, come:

class Model { 

/** 
* @var Database $db This is my Database object 
*/ 
protected $db; 

non dovrebbe avere problemi poi .. .

+0

Funziona :-) Il problema era un commento di linea – Andy

+0

+1 Mi hai fatto capire quale fosse il problema. Ho aggiunto una risposta per completezza. –

+0

Non avevo visto che c'era solo un asterisco dopo la barra, ben osservato. – SaschaM78

8

NetBeans possono fare uso di due simili eppure diversi commento annotazioni:

  1. Buone vecchie phpdoc commenti a blocchi, che iniziano con /** e vengono inseriti a destra prima la voce definizione:

    /** 
    * @var Database $db Database connection instance 
    */ 
    protected $db; 
    
  2. Variable type commenti in linea, che iniziano con /* e vengono inseriti da qualche parte prima dell'uso voce :

    $foo = $this->db; 
    /* @var $foo Database*/ 
    $foo->... 
    

Il secondo tipo è utile quando i commenti docblock non sono disponibili o non sono utili, ad es. stai utilizzando una libreria di terze parti non documentata o il tuo tipo di variabile non può essere monitorato automaticamente.

Stavi fondamentalmente utilizzando sintassi per 2 # nel contesto per il # 1 ;-)

+0

Buon punto! +1. – shadyyx

+0

Sì, stavo provando il commento/(doppia stella) all'interno di un metodo. Modificato in/* e voilà. –

+0

Grazie per questo. Proprio quello che stavo cercando. – MarthyM

Problemi correlati