Как вызывать переопределенные классы внутри базового класса? Ситуация такая: есть два базовых классаloader = new Loader();
}
}<?php
namespace AppBase;
class Loader {}
И есть наследуемые классы:<?php
namespace AppExample;
class App extends \AppBase\App {}

21 Авг 2019 в 07:07
174 +1
0
Ответы
1

В данной ситуации можно воспользоваться поздним статическим связыванием для создания экземпляра нужного класса Loader внутри класса App. Для этого можно использовать статический метод в базовом классе App, который будет создавать экземпляр нужного класса Loader.

Пример кода:

namespace AppBase;
class App
{
protected $loader;
public function __construct()
{
$this->loader = static::createLoader();
}
protected static function createLoader()
{
return new Loader();
}
}
namespace AppExample;
class App extends \AppBase\App
{
protected static function createLoader()
{
return new Loader();
}
}
namespace AppBase;
class Loader {}
namespace AppExample;
class Loader extends \AppBase\Loader {}

Таким образом, при создании экземпляра класса AppExample\App будет вызываться переопределенный метод createLoader, который будет создавать экземпляр класса Loader из пространства имен AppExample.

20 Апр 2024 в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир