абстрактный — абстракция в переполнении стека

У меня есть несколько внешних служб в PHP и класс конфигурации — одноэлементный класс, чтобы взять список конфигурации из файла .ini.
Для каждого класса я делаю что-то вроде следующего в конструкторе:

$this->config = ConfigClass::getConfig()

мне нужно объявить абстрактный класс и только их в конструкторе положить этот класс конфигурации, а затем просто расширить класс?

Например: я хочу также добавить регистратор
Я буду рад получить пример

1

Решение

Абстрактные классы используются в качестве шаблона для производного класса. Любой метод с абстрактным ключевым словом, объявленным в базовом абстрактном классе, должен быть перезаписан в производном классе.

Увидеть Документация php.net по абстрактным классам.

Для вашего примера достаточно сделать:

class Base {
public function __construct()
{
$this->config = ConfigClass::getConfig();
}
}

class Derived extends Base {
}

Однако обратите внимание — если вы хотите поместить что-то в конструктор производного класса, вы должны вызвать его явно, например, так:

class Base {
public function __construct()
{
$this->config = ConfigClass::getConfig();
}
}

class Derived extends Base {
public function __construct()
{
parent::__construct();
// Other code
}
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector