2012-12-17 12 views
6

Znalazłem sposób powiedzieć NetBeans typ zmiennej w taki sposób:Definiowanie typ zmiennej w Netbeans PHP

/* @var $variablename Type */ 

Jednak w tym przypadku nie ma żadnych wskazówek (Baza danych jest moja klasa):

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

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

Czy to jest limit Netbeans, czy raczej mój błąd?

+0

dobrze, wszystkie klasy (bazy danych, model i MyModel) pliki są w tym samym folderze, w klasie modelu ja mam w bazie wskazówki, jednak mam je nawet bez takiego komentarza, w MyModelu Mam wskazówki z klasy nadrzędnej, ale bez wskazówek z MyModel-> db. Wersja 7.2 – Andy

+0

Typ zmiennej musi poprzedzać nazwę zmiennej, powinien raczej odczytywać '@var Database $ db', a nie odwrotnie. Inne możliwe źródła problemów: niewłaściwa ścieżka dołączania (czy możesz STRG + kliknąć na swoją zmienną $ db?) Lub dostęp do własności w klasie, a nie w metodzie klasowej. – SaschaM78

Odpowiedz

4

Przede wszystkim należy określić typ zmiennej najpierw tak:

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

A po drugie Proponuję użyć PHPDoc komentowania, jak:

class Model { 

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

nie powinien mieć problemów potem .. .

+0

To działa :-) Problem polegał na jednym wierszu komentarza. – Andy

+0

+1 Uświadomiłeś mi, na czym polegał problem. Dodałem odpowiedź na kompletność. –

+0

Nie zauważyłem, że za cięciem była tylko jedna gwiazdka, dobrze obserwowana. – SaschaM78

8

NetBeans może skorzystać z dwóch podobnych jeszcze różne adnotacje komentarz:

  1. Dobre stare phpdoc komentarze blokowe, które zaczynają się /** i są umieszczone tuż przed pozycji definicję:

    /** 
    * @var Database $db Database connection instance 
    */ 
    protected $db; 
    
  2. Variable type inline komentarze, które zaczynają się /* i są umieszczone gdzieś przed użyciem poz :

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

Drugi typ jest przydatny, gdy komentarze do Docblocka są niedostępne lub nie są pomocne, np. używasz biblioteki innej firmy, która nie jest udokumentowana lub twój typ zmiennej nie może być śledzony automatycznie.

Byłaś w zasadzie za pomocą składni nr 2 w kontekście dla # 1 ;-)

+0

Dobra uwaga! +1. – shadyyx

+0

Tak, próbowałem (double-star)/** komentarz w ramach metody. Zmieniono to na/* i voila. –

+0

Dziękuję za to. Właśnie tego szukałem. – MarthyM