А как Вы решаете проблему с текучим интерфейсом?
class Shape
{
/** @param type $color
* @return \Shape */
public function setPenColor($color)
{ return $this; }
/** @param type $color
* @return \Shape */
public function setBrushColor($color)
{ return $this; }
}
class Circle extends shape
{
/** @param type $x
* @param type $y
* @return \Circle */
public function setCenter($x, $y)
{ return $this; }
/** @param type $radius
* @return \Circle */
public function setRadius($radius)
{ return $this; }
}
$circle = (new Circle())
->setBrushColor($color)
->|;
Соответственно в NetBeans, на месте |, появляются только методы shape, а не circle и shape.
Как Вы боритесь с этой проблемой в своей IDE?