2012-12-17 8 views
6

Ich habe einen Weg gefunden, Netbeans Variablentyp zu sagen, in einer solchen Art und Weise:Variablentyp in Netbeans definieren PHP

/* @var $variablename Type */ 

jedoch in diesem Fall gibt es keine Hinweise sind (Datenbank ist meine Klasse):

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

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

Ist es Netbeans Grenze oder eher mein Fehler?

+0

Nun, alle Klasse (Database, Modell und MyModel) für # 2 im Zusammenhang mit Dateien wurden im selben Ordner sind, in Modellklasse I Datenbank habe Hinweise, aber ich habe sie auch ohne solchen Kommentar, in MyModel habe ich Hinweise von Elternklasse, aber keine Hinweise mit MyModel-> db. Version 7.2 – Andy

+0

Der Typ der Variablen muss dem Variablennamen vorangestellt werden, er sollte '@var Database $ db' lesen und nicht andersherum. Andere mögliche Problemquellen: falscher Include-Pfad (können Sie STRG + in Ihre $ db-Variable klicken?) Oder Eigenschaftenzugriff in der Klasse und nicht in der Klassenmethode. – SaschaM78

Antwort

4

Zunächst einmal definieren den Variablentyp zunächst wie folgt aus:

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

Und zweitens würde ich vorschlagen, phpdoc kommentieren zu verwenden, wie:

class Model { 

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

dann keine Probleme haben sollte ..

+0

Es funktioniert :-) Das Problem war eine Zeile Kommentar – Andy

+0

+1 Sie machten mir klar, was das Problem war. Ich habe eine Antwort für die Vollständigkeit hinzugefügt. –

+0

Hatte nicht gesehen, es war nur ein Stern nach dem Schrägstrich, gut beobachtet. – SaschaM78

8

NetBeans kann die Verwendung von zwei ähnlichen, aber unterschiedlichen Kommentar Anmerkungen machen.

  1. gute alte phpdoc Block Kommentare, die mit /** beginnen und werden direkt vor dem Punkt Definition platziert:

    /** 
    * @var Database $db Database connection instance 
    */ 
    protected $db; 
    
  2. Variable type Inline-Kommentare, die mit /* beginnen und irgendwo vor dem Punkt Verwendung platziert:

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

Der zweite Typ ist nützlich, wenn Docblock-Kommentare entweder nicht verfügbar oder nicht hilfreich sind, z. Sie verwenden eine Bibliothek eines Drittanbieters, die nicht dokumentiert ist, oder Ihr Variablentyp kann nicht automatisch nachverfolgt werden.

Sie im Grunde Syntax für # 1 ;-)

+0

Guter Punkt! +1. – shadyyx

+0

Ja, ich habe den (Doppelstern)/** Kommentar innerhalb einer Methode versucht. Das änderte ich in/* und voila. –

+0

Vielen Dank dafür. Genau das, wonach ich gesucht habe. – MarthyM