In PhpStorm kann ich tippe-Tipp eine Variable auf diese Weise:Typehint geerbte Klassenvariablen in PhpStorm
/** @var Point $point */
$point->x();
jedoch sagen, dass ich eine Variable von einer übergeordneten Klasse geerbt und möchte es typ Hinweis :
class PointProxy extends Proxy
{
public function x()
{
...
/** @var Point $this->geometry */
return $this->geometry->x();
}
}
Dies funktioniert nicht, wirkt PhpStorm, als ob ich $this
typangedeutet hatte, und nicht $this->geometry
.
Gibt es eine Möglichkeit, einen solchen Typhinweis zu bearbeiten, ohne die Eigenschaft $geometry
in der Unterklasse erneut zu deklarieren, oder wird dies nicht unterstützt?
Sie können solche PHPDoc nicht für komplexe Objekte (2. Ebene in Hierarchie) verwenden - nur erste Ebene. Dieser '/ ** @var Punkt $ this-> geometry * /' macht keinen Sinn .. als PHPDoc Kommentar wird nur auf die erste Ebene ('$ this 'in diesem Fall) angewendet. Jetzt können Sie versuchen, es über '@ property' im PHPDoc-Kommentar für die Klasse zu deklarieren - sollte nur sinnvoll sein, wenn es sich um eine öffentliche Eigenschaft und nicht um private/protected handelt. – LazyOne
Wenn möglich, sollte die Eigenschaft in der Elternklasse angegeben werden; Dies sollte sich in Unterklassen ausbreiten. – deceze
@deceze Es * ist * in der Elternklasse typisiert, aber als 'Geometrie'. Die Kindklasse sollte dokumentieren, dass es sich tatsächlich um einen "Punkt" handelt, der von "Geometrie" abstammt. – Benjamin