10. MVC общедоступной части сайта
В основе движка, как общедоступной части сайта, так и админки, лежит архитектура MVC, однако, она имеет много особенностей.
Модель в большинстве случаев выступает не в роли объекта, которым манипулирует контроллер, а в роли вполне самобытной библиотеки, предоставляющей инструментарий контроллеру, хотя в то же время модель может выступать даже в роле представления!
Функции контроллера, в свою очередь, не сводятся к манипуляции моделями, а в большинстве случаев реализуют всю основную логику обработки запросов. Дополнительное дробление кода на контроллер и модель представляется излишним.
В роли представления может выступать как php-скрипт, содержащий разметку HTML, так и экземпляр какого-либо класса. В последнем случае объект должен реализовывать метод render(), который будет вызван движком для генерации HTML-кода страницы. Если для общедоступной части сайта представление почти всегда имеет вид php-скрипта, то для обработки какого-либо запроса в админке очень часто достаточно вообще одного контроллера.