Это звучит очень похоже на этот вопрос .
Я настоятельно рекомендую вам взглянуть на паттерны архитектуры корпоративных приложений от Мартина Фаулера.
Я бы также порекомендовал вам поискать на этом сайте вопросы, связанные с моделью или доменом, а также реляционным сопоставлением объектов или абстракцией базы данных. Я знаю, что есть много отличного контента, особенно в отношении PHP.
Я вижу два вопроса в этом вопросе, которые вы опубликовали. Во-первых, каковы общие архитектурные составляющие сайта. Как правило, у вас будут эти три в некотором проявлении:
- База данных и уровень взаимодействия с базой данных
- Контроллер - обрабатывает $ _GET и $ _POST (запрос) и присваивает содержимое представлению и в конечном итоге отображает его.
- Представление - должно содержать только HTML и базовый код, такой как циклы для перебора коллекций и вывода переменных.
Второй вопрос, который я вижу, - где разместить обработку конкретного бизнес-объекта в приложении. Здесь обсуждение становится немного более сложным, поскольку я предполагаю, что вам нужно взаимодействовать с сообщениями как в виде бизнес-объектов (в домене), так и в виде строк в таблице базы данных. Обе эти проблемы могут быть включены в один и тот же класс с использованием шаблона, называемого Active Record, который был популяризирован Ruby on Rails. Однако, в зависимости от сложности приложения и базы данных, вы можете рассмотреть возможность отделения бизнес-логики от взаимодействия с базой данных путем создания одного класса Post, который действует как слой взаимодействия с базой данных, и другого класса Post, который содержит всю бизнес-логику.