У меня есть суперкласс, который создает экземпляр моего класса Sql, поэтому все производные классы смогут выполнять запросы без создания своих собственных экземпляров Sql после их создания.
Это хорошо работает, но у меня есть вопрос, из-за которого я запутываюсь. Один из производных классов создает экземпляр другого производного класса в своем конструкторе, поэтому теперь я считаю, что у меня есть 2 открытых экземпляра класса Sql, потому что каждый создает родительский экземпляр. Я не могу переопределить родительский класс ни в одном из производных классов, потому что им всем нужен доступ к экземпляру базы данных для выполнения их собственных запросов. Есть ли способ предотвратить вызов производным классом родительского конструктора, когда его создает другой производный класс?
Я думаю передать параметр классу и вызвать родительский конструктор, только если он соответствует требованиям.
function__construct($param) {
if($param == false) {
parent::__construct();
}
}
Считаете ли вы, что такой подход имеет смысл, или вы предвидите любые ошибки, возникающие в будущем?