Страницы

Поиск по вопросам

вторник, 15 января 2019 г.

Шаблонизаторы vs быстродействие, удобство, гибкость

Надеюсь, что не подниму сейчас холивар) В общем-то всегда удивлялся фанатам шаблонизаторов и хочется послушать аргументы в их пользу. Не понимаю, какой смысл в написании псевдокода на псевдоязыке, который либо компилируется, либо (омфг) транслируется во время запроса к странице, который к тому же реально сложнее для восприятия. Скомпилированный код того же smarty, по сравнению с нативным шаблоном, захламлен чем-то явно лишним, сам код намного менее гибок, чем php, малопонятные конструкции циклов, пляски с бубном на банальном разделении контента в 3 столбика, etc etc... Но при этом даже здесь от "старожилов" и явно не глупых людей слышу постоянно "используйте шаблонизаторы типа Смарти". Итак, вопрос: а, собственно, зачем? ЗЫ: Я не против шаблонизаторов в принципе(только извращений типа псевдокода с "компиляцией"). То, с чем я работаю, работает по такому принипу (минимальный код): function assignTemplate($file, $tmpl, $params = array()) { ob_start(); if (!is_file($file)) { echo 'No file'; } elseif(!is_file($tmpl)) { echo 'No template'; } else { require $file ; ob_end_clean(); ob_start(); require $tmpl ; } $result = ob_get_contents(); ob_end_clean(); return $result; }


Ответ

Суть шаблонов, - абстрагировать верстку от кода на PHP, облегчить верстальщикам (а не программистам) работу. По чему не стоит писать свой шаблон координально синтаксически отличающийся от сматри и иже с ним? Дело в том, что верстальщику легче привыкнуть к одному языку шаблонов (или использовать его подмножество), чем под каждый проект изучать свой (особенно если он на жизнь зарабатывает фрилансом). Мощные шаблонизаторы по типу смарти, благополучно транслируют свой код в пхп и кэшируют его (поэтому замедление будет заметно только при трансляции нового шаблона в код, дальше все будет работать из кэша). Да, он не читаемый, но он и не должен быть читаем человеком, для человека есть текст шаблона, который он должен изменять. P.S. Могу поспорить каждый писал свой шаблонизатор, еще и потому что это легче чем изучать чужой и пользоваться им (прошу не обижаться, я сам такой :) ).

Комментариев нет:

Отправить комментарий