Все говорят, что контроллер - это поток приложений, модель - это бизнес-логика, а представление - выход.Концерн по разделению в MVC
Я могу понять, что все шаблоны (шаблоны электронной почты, шаблон сайта, шаблоны SMS, JSON для ajax и т. Д.) Принадлежат View. Также к контроллеру относятся такие вещи, как проверка разрешения пользователя (например, на страницах администратора), запрос маршрутизации и т. Д. И такие действия, как сохранение/извлечение/удаление данных базы данных, относятся к модели. Наконец, ViewModels - это классы, которые вызываются представлениями для получения данных из моделей и виртуальных машин, и идут в папку рядом с «Виды, модели и контроллеры».
Но где я должен класть такие классы, как Autoloader, Configuration, SendMail, SendSms, ReadMail, ReadSms, Auth, Request, Hash, Encryption, Validator, SessionHandler, ErrorHandler, CacheHandler, Notification, Chat, DB Migration и тысяча других ?
Я ищу окончательный справочник: как определить, что класс foo принадлежит M, V, C или VM, и в каком месте/пространстве имен это помещается?
P.S. Я просто ищу технически независимый стандарт. Независимо от того, как Laravel или ZF или какие-либо другие структуры внедрили MVC.
Спасибо.
MVC - это модель взаимодействия с пользователем, это не означает, что каждый класс вашего приложения попадает в MVC. – dmitry
Спасибо, @dmitry, вы говорите, что эти классы должны идти в отдельной папке/пространстве имен, таком как утилита \ Autoloader {}, какая утилита находится в том же пространстве/папке пространства имен, что и M, V, C и VM? – David
Я имею в виду, что у вас может быть любое количество других объектов кода, чем все, что вы можете поместить в MVC. Например, Autoloader - что он делает с MVC? Ничего, он загружает классы, что является исключительно низкоуровневой задачей, не связанной с архитектурой MVC как таковой. То же самое для большинства классов, которые вы указали в своем вопросе. Они прекрасно могут входить в отдельные папки и пространства имен, но не обязательно. Определенные варианты размещения имен и файлов зависят от многих проблем, но основное мое сообщение было: ни один класс в вашем приложении не является частью дизайна MVC. – dmitry