Добрый день! хочу написать activerecord на php с нуля, кто может глянуть код и посмотреть все ли правильно с точки зрения ооп и семантики? Код на гитхабе
Думаю класса 2-3
А что-то там не так? можно сделать названия таблиц такими же, как названия классов, чтобы не писать функцию getTableName, верно я понимаю?
AR не просто так считают убогим паттерном. Он привязывает объект целиком к конкретной структуре БД, которую ты не можешь изменить, не меняя работающего с ней объекта(et vice versa). Хотя бы сделай Table Data Gateway, если не Repository. Их проще адаптировать к изменениям структуры, и нет необходимости при этом колбасить объекты с риском поломать вообще весь проект.
AR не просто так считают убогим паттерном. Он привязывает объект целиком к конкретной структуре БД, которую ты не можешь изменить, не меняя работающего с ней объекта(et vice versa). Хотя бы сделай Table Data Gateway, если не Repository. Их проще адаптировать к изменениям структуры, и нет необходимости при этом колбасить объекты с риском поломать вообще весь проект.
Потому что Table Data Gateway это вырожденный случай Repository. Принципиально между ними разница в процессе мапинга данных из БД на атрибуты объекта. TDG это эдакий вывернуты наизнанку AR, когда объект не сам достаёт себя, а достаётся из другого сервиса, но мапинг по сути тот же 1:1. Repository может мапить что угодно на что угодно. У меня один репо вообще собирается из собственной таблицы-индекса и двух дополнительных репо (структура и текстовые блобы).
А что у тебя за class UserInterface такой?
Суффиксом interface принято обозначать интерфейсы, а не что-то там еще.
У тебя это больше похоже на Controller.