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