У меня есть несколько внешних служб в PHP и класс конфигурации — одноэлементный класс, чтобы взять список конфигурации из файла .ini.
Для каждого класса я делаю что-то вроде следующего в конструкторе:
$this->config = ConfigClass::getConfig()
мне нужно объявить абстрактный класс и только их в конструкторе положить этот класс конфигурации, а затем просто расширить класс?
Например: я хочу также добавить регистратор
Я буду рад получить пример
Абстрактные классы используются в качестве шаблона для производного класса. Любой метод с абстрактным ключевым словом, объявленным в базовом абстрактном классе, должен быть перезаписан в производном классе.
Увидеть Документация 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
}
}
Других решений пока нет …