Да, я знаю, этот заголовок полный рот 🙂
Код сделает этот способ более удобочитаемым:
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()
Метод — это набор текста для другого класса, чем метод его родителя с тем же именем.
Есть ли способ убедиться, что AbstractLevel\ConcreteLevel\Bar::addFoo()
печатные буквы для класса AbstractLevel\ConcreteLevel\Foo
вместо AbstractLevel\Foo
?
Есть ли способ обеспечить …
Вы можете добавить абсолютный путь к классу typehinted:
public function addFoo(\AbstractLevel\ConcreteLevel\Foo $foo)
В настоящее время я не уверен на 100% в ключевом слове. abstract
,
вам может понадобиться поместить его туда в первом классе:
abstract class Bar
{
public abstract function addFoo(Foo $foo)
Других решений пока нет …