У меня есть класс базы данных, в который вы передаете имя таблицы в конструктор, например:
$customer = new Dao("customer");
Существуют также специализированные дочерние классы для нескольких таблиц, которые имеют специальное поведение, например:
class customerDao extends Dao{}
Причина этого в том, что если кто-то вводит клиента, есть определенная логика, которую я хочу сделать каждый раз заранее.
Моя цель - разрешить класс Dao
использоваться для большинства таблиц, но вынудить программиста использовать один из этих дочерних классов, если таблица соответствует им.Я хочу убедиться, что если кто-то создаст объект класса Dao
и передаст имя таблицы, соответствующее одному из этих дочерних классов, он будет создавать экземпляр дочернего класса, так что невозможно вставить клиента беззапустить этот логический код заранее.Есть ли способ сделать это?
Если мне нужно, я могу просто получить массив запрещенных имен таблиц и проверить соответствие в конструкторе, но я надеялся найти более элегантное решение.