Здравствуйте, есть простой проект который нужно сделать с помощью MVC.
Cоздал папки view(весь код html), controller(контроллеры), model(модели).
Есть класс по работе с базой данных, его положил в model.
Ещё есть классы по валидации формы и т.п. классы.
Их тоже поместить в папку model?
А также возник вопрос где разместить файлы с css, js?
Для этого в корне нужно создать отдельную папку(например app) или как это принято делать?
Судя по ответам некто так и не дал четкого понятия где хранить собственный клас не являющейся моделью я тоже часто задавался етим вопросом работая с фейерверками но перерыв кучу инфы понял что на него нет четкого ответа и каждый сам решает где он хочет его сохранять некоторые создают папки некоторые хранят в моделях короче столько людей столько и мнений.
Если класс не является моделью - зачем его располагать в папке models?
И кто сказал что MVC это четкое разделение на три компонента?
Если у нас используется шаблонизатор, то шаблонизатор это вьюха? нет. Тогда может быть вьюхой является сам шаблон? Ну может быть в простых случаях. Но тогда куда девать шаблонизатор? А может быть у нас есть класс, собирающий по кускам разные страницы с помощью шаблонизатора? Вот он-то наверное и будет вьюхой. Блин, тогда шаблоны тоже уже не вьюха.
Прослойка доступа к БД это модель? нет, в ней же нет бизнес-логики. Но в этой прослойке возможно есть базовый класс, от которого наследуются другие модели? Тогда этот класс будет моделью, а остальные части прослойки нет? Но стоит ли разделять единый функциональный модуль на части? Вероятно нет.
Я веду к тому, что MVC - это парадигма, шаблон, паттерн для разработки программы, а не свод четких правил где и что надо писать. Нужно включать голову, думать и находить наилучшее решение в конкретном проекте.
Ну или фреймворк взять и писать код по его стайлгайдам, райтвеям и бэстпрактикам.
Судя по последним вопросам вы решили создать проект по концепции MVC, не зная MVC :)
Почитайте про неё, хотя бы.
Можно, например, тут. Или посмотрите структуру какого-нибудь MVC-фреймворка (Yii, Laravel, ...).
Файлы css, js - это FrontEnd и логично было бы их разместить отдельно от вашего BackEnd (например, project/assets/{css/js/...}). По сути скрипт, который описывает методы для манипуляции БД является моделью, а ваши контроллеры будут дергать эту модель.