Ich habe Code mehr oder weniger wie folgt aus:PhpStorm Typ-Hinweise für Fabriken?
class Foo {
public static function factory($str) {
$class = "Foo_" . $str;
return new $class;
}
}
class Foo_Bar {
public function razzle() {
print "Foo_Bar->baz() was called";
}
}
$Obj = Foo::factory('Bar');
und ich möchte PhpStorm verstehen, dass $Obj
ein Foo_Bar
Objekt ist, so dass zum Beispiel, wenn ich tippe $Obj->raz
, razzle()
wird für die automatische Vervollständigung angezeigt.
Gibt es eine Möglichkeit, das zu bekommen? Um PhpStorm mitzuteilen, dass die Funktion Foo::factory($str)
ein Objekt vom Typ Foo_$str
zurückgibt? Meine Vermutung ist, dass die Antwort nein ist.
Vielleicht mache ich etwas falsch, aber es scheint nicht für mich zu arbeiten. Ich benutze PHPStorm 6.0.3. Ich habe die folgenden zwei Dateien in einem neuen leeren Projekt erstellt: http://pastie.org/8146899, aber ich bekomme keine Art von Vervollständigung auf '' $ x -> ... ' –
Arbeit für mich. 1) Datei mit Metadaten muss heißen '.phpstorm.meta.php'; 2) Es wird nicht sofort aufgenommen - Schließen und erneutes Öffnen des Projekts (Suche nach einer solchen Datei erfolgt beim Laden des Projekts; sobald eine Datei gefunden wurde, sollten Änderungen sofort aufgenommen werden) - Dieses Verhalten wurde behoben v7. – LazyOne
Danke! Ich wusste nicht, dass der Name benötigt wird, es funktioniert jetzt wunderbar. –