Да, я знаю, что название громоздко :)PHP: Каков наилучший способ ввода подсказок класса в унаследованном методе из родительского класса конкретного класса?
код сделает этот путь более удобоваримый:
namespace AbstractLevel;
abstract class Bar
{
public function addFoo(Foo $foo)
{
$this->foo = $foo;
}
}
namespace AbstractLevel\ConcreteLevel;
class Bar extends \AbstractLevel\Bar
{
public function addFoo(Foo $foo)
{
parent::addFoo($foo);
}
}
Приведенный выше код должен получить уведомление, когда во время выполнения экземпляра класса AbstractLevel\ConcreteLevel\Bar
, так как метод addFoo()
является typehinting для другого класса, чем метод его родителя с тем же именем.
Есть ли способ обеспечить, чтобы AbstractLevel\ConcreteLevel\Bar::addFoo()
типа для класса AbstractLevel\ConcreteLevel\Foo
вместо AbstractLevel\Foo
?
Я думаю, что это невозможно, так как перезаписанный метод всегда должен следовать за его подписью класса родителей. Sady PHP не способен перегружать. – ToBe