Создание простого шаблона "ORM / ActiveRecord" - PullRequest
0 голосов
/ 07 июля 2011

Я не уверен, что то, что я делаю, называется ORM или Active Record Pattern.

У меня есть Entity базовый класс, который будут наследовать сущности / таблицы базы данных. Эти классы будут иметь методы типа

  • найти
  • findBy
  • findAllBy
  • вставить
  • обновление
  • удалить
  • Получатели и сеттеры для данных столбца (например, имя, заголовок и т. Д.) С помощью магических методов

Проблема теперь в том, как мне создать соединение с базой данных?

  • Инъекция зависимости - звучит сложно ...
  • Использовать глобальную переменную, которую эти классы ожидают установить? - Не правильно звучит
  • Есть базовый класс, который Entity наследуется, который содержит всю информацию о подключении к базе данных? - не правильно звучит либо

Может, я делаю это неправильно? Я открыт для любых идей, желательно простых для начала. Я хочу создать простой фреймворк для начала (не используя, например, Doctrine), он даст мне основу для работы такого фреймворка. Также, если это небольшой проект, использование большого фреймворка может усложнить ситуацию

1 Ответ

0 голосов
/ 07 июля 2011

В том, что вы пытаетесь, не так уж и просто. Его сложная вещь: -)

Вам нужен какой-то базовый менеджер сущностей и / или класс таблиц, который обычно содержит ссылку на соединение с БД (или какой-то объект, который его оборачивает). Все сущности затем передают себя менеджеру, когда их методы save или delete вызываются, и менеджер обрабатывает запрос, необходимый для изменения базы данных.

Вы можете либо внедрить этот менеджер, либо сделать его одноэлементным, и ваши классы могут получить его, например, при создании экземпляра.

На твоем месте я бы проверил Шаблоны и практики объектов PHP от Мэтта Зандстры . Это входит во все эти образцы с некоторыми основными примерами реализации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...