2016-09-29 9 views
1

Ist es möglich (für Typhinweiszwecke), die Klasse der Objekteigenschaft anzugeben? Das endgültige Produkt des Codes funktioniert wie erwartet, aber Typhinweis nicht. Zum Beispiel zeigt die folgende, was ich zu tun versuche, aber das funktioniert nicht:PHPDoc für Eigenschaft des Objekts

/* @var $this->view \app\components\View */ 
    $this->view->title = 'Title here'; 

Alles, was ich jemals waren Verweise auf @var $this oder ähnlich gesehen, aber nie eine Eigenschaft des Objekts $this. Wenn das möglich ist, was fehlt mir?

Antwort

2

Ja - Sie müssen die PHPDoc Anmerkung zur Anwendung, wenn Sie die Eigenschaft in der Klasse erklären: es in der Klasse

class Foo 
{ 
    /* @var \app\components\View $view*/ 
    public $view; 

    public function __construct() 
    { 
      $this->view->title = 'Title here'; 
    } 
} 
+0

Gibt es eine Möglichkeit, ohne es zu erklären, mit Anmerkungen zu versehen? Wie wenn die Klasse Foo die Klasse Bar erweitert, wo die Eigenschaft deklariert wird? Ich würde durch ein paar Klassen zurückgehen müssen, um die ursprüngliche Deklaration der Ansichtseigenschaft zu finden (durch Herstellercode, das ist). – justinvoelker

+0

Mir sind keine Möglichkeiten bekannt, dies zu tun. Ich denke, ich würde mich einfach dafür entscheiden, die Immobilie in der Superklasse neu zu deklarieren, wenn Ihre IDE Ihnen Anfälle geben würde. – HPierce

+0

Da die Superklasse außerhalb meiner Kontrolle liegt, wird das nicht einfach/machbar sein. Was funktioniert, ist jedoch, die Eigenschaft in meiner Klasse neu zu deklarieren, und dann, wo sie verwendet wird, setze ich sie gleich der übergeordneten Implementierung des Wertes. Also, meine Klasse beginnt damit leer, aber wenn sie benutzt wird, ist es wieder da, wo es sein sollte. Danke für die Hilfe! – justinvoelker

Verwandte Themen