PHP - Должен ли я создать искусственное наследование в классах DAO, когда они мне не нужны? - PullRequest
0 голосов
/ 09 декабря 2011

All

Создание небольшого веб-приложения с использованием PHP. У меня нет большого опыта программирования.

В моем приложении я создал класс для доступа к записям БД, который я называю DAO_DBrecords. Класс включает в себя основные функции для создания новых записей, обновления существующих записей и т. Д. В настоящее время класс удовлетворяет всем моим требованиям DAO для всех моих таблиц БД. В функциях я передаю в качестве одного из аргументов строку, представляющую таблицу БД (users, articles и т. Д.).

На данный момент я могу сделать одну из 3 вещей:

  1. Используйте этот класс во всей моей программе независимо от типа записи (т. Е. Таблицы), с которой я имею дело.
  2. Создайте конкретные классы для каждого типа записи (например, DAO_Users), которые наследуются от DAO_DBrecords, но в остальном являются пустыми.
  3. Создание определенных классов для каждого типа записи (например, DAO_Users), которые наследуются от DAO_DBrecords и указывают таблицу БД, к которой класс может обращаться через переменную (например, private $table = 'users'). В родительском классе переменная будет нулевой или пустой строкой.

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

Какой из этих (если есть) правильный подход?

Спасибо

JDelage

Редактировать: я отредактировал вариант 3, который ранее читался:
3. Создайте конкретные классы для каждого типа записи (например, DAO_Users), которые наследуются от DAO_DBrecords и укажите таблицу БД, к которой класс может обращаться через константу (например, const TABLE = 'users'). В родительском классе константа будет нулевой или пустой строкой.

1 Ответ

1 голос
/ 09 декабря 2011

Я выберу 3-й вариант.В DAO_Users вы можете в конечном итоге поместить методы для выполнения определенных действий с самой записью пользователя (например, создать и сохранить соленый пароль, отправить электронное письмо с подтверждением, получить всех друзей пользователя из базы данных как коллекцию DAO_Users, получить все комментарии пользователя).и т. д.)

Таким образом, вы можете использовать шаблон DAO и организовать все "действия" приложения в классах по цели действия.

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