pdo — Создание слоя абстракции БД с использованием переполнения стека

Я пытаюсь создать простой слой абстракции базы данных. Я прочитал много статей об Active Record и Table Data Gateway, и сейчас я очень растерялся.

Я думаю, что я понимаю некоторую (небольшую) теорию о них, но не знаю, как именно их реализовать. Я решил внедрить Data Table Gateway. Я постараюсь объяснить, что я сделал, и если вы дадите мне несколько советов, я буду рад. Я не уверен, почему (например, в ZF2) каждый раз, когда мне приходится использовать шлюз табличных данных, такой как DI, в моделях.

В моем случае мой AbstractModel просто получает DbAdapter в константном контейнере IoC, но я не уверен, что это нормально.
Хорошо, я опишу мою ситуацию.
У меня есть следующие классы:

  • DbAdapter -> создает соединение с БД (используя PDO)
  • IoC (инверсия управляющего контейнера)
  • AbstractModel -> в конструкторе я получаю DbAdapter используя IoC. Это означает, что он содержит только один экземпляр DbAdapter. В этом классе у меня также есть методы CRUD.
  • Другие классы представляют таблицы в БД. Например, класс User расширяет AbstractModel и имеет метод getTable, который возвращает имя таблицы. Другие sql запросы будут в этих классах, которые представляют таблицы. Эти классы имеют доступ к DbAdapter.

Это нормально, эта схема и как я могу улучшить ее?

0

Решение

Задача ещё не решена.

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

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