Смотрел чуть-чуть CakePHP. Помучился одно время с Yii: документация в жутком состоянии, примеры для начинающего изучать MVC слишком туманны. Читал доку по Symfony, но что-то не пошло. С неделю назад наткнулся на Phalcon и, к моему удивлению, нашел: достаточно подробную доку, достаточно подробное описание компонентов, разжеванные примеры.
Phalcon написан на Си и работает как модуль PHP (>=5.3). View выбирается автоматом, но можно также в контроле переназначить. Есть шаблон верхнего уровня, layout, шаблон контрола и «частичные» шаблоны, подключаемые в любой другой шаблон. Также можно отключить рендеринг шаблонов любого уровня. Это что касается PHP View. Есть в Phalcon еще свой собственный шаблонизатор — «Volt». Читал, что и другие шаблонизаторы можно использовать, например, тот же Smarty.
Добавлено через 3 минуты и 59 секунд:С одной стороны, хочется иметь пассивный view - чтоб только свои теги, а с другой стороны - динамический (зависисмость от погоды и количества выпитого утреннего кофе
)
Согласен. Первый вариант кошерен при большом HTML-наполнении шаблона. Второй — при изощренной логике, почему-то оказавшейся в шаблоне вместо контрола. Третий как-то размазан. И удаление перевода строки после "?>" однако бесит.
Добавлено через 4 минуты и 4 секунды:А позволяет ли это обращаться из шаблонов к моделям без ведома контроллера?
А это зависит от кривости реализации MVC или шаблонизатора...
например для шаблонов на smarty хочется, иногда, иметь возможность вставки php кода, но может оказаться проще написать свою реализцию переменной.
Или для Joomla, которая себя позиционирует как MVC, но там это не пахнет, а только воняет.
Например, нужно вставить в существующий сайт рекламные блоки. Менять при этом контрол считаю некорректным, т.к. к логике сайта реклама никак не относится. Было бы логичным вызвать из шаблона PHP-код, который бы подгрузил нужные данные и вывел бы блок рекламы.