Привет, форумчане. Я давно работаю с PHP, но в основном на чистом языке, сейчас разбираюсь с фреймворками и не могу найти ответ на один вопрос: нафига нужны шаблонизаторы? Чем вот такой вариант: Код (Text): {% for item in navigation %} <li><a href='{{ item.href }}'>{{ item.caption }}</a></li> {% endfor %} Лучше этого: PHP: <?php foreach ($navigation as $item) { ?> <li><a href='<?=$item->href?>'><?=$item->caption ?></a></li> <?php } ?> Или этого: PHP: <?php foreach ($navigation as $item) { echo "<li><a href='{$item->href}'>{$item->caption}</a></li>"; } ?>
А ничем. В 95% случаев - шаблонизаторы нужны для решения придуманной проблемы, суть которой в том, что веб-разработчики боятся, что у них в коде где-то будет генерироваться HTML, а это зашквар и не по-пацански, и следующим шагом уже героин, а потом прыжок с балкона. По этому им проще заставить систему парсить регулярками шаблоны, чтобы потом она втыкала на место замудреных тегов данные нужные. А они типа спокойны, что это ж не они написали, это другое средство делает, они типа чисты перед собой. Нелогичная дичарня. Шаблонизаторы - это мода середины 2000х, начала 2010х. Не, может где-то там они и нужны, мне вот все доказывают их полезность, мол, наследования там есть, еще что-то, но это все, имхо, костыль, призванный прикрыть кривую логику архитектуры исходного приложения.
в плане синтаксиса ничем не лучше. шаблоны бывают и на голом php. да-да-да! от этого они не перестают быть шаблонами вывода. гугли "php plates" или "symfony php template engine". ларавелевский blade тоже не расово чистый шаблонизатор, он вполне себе допускает включение php так что же есть кроме синтаксиса: - "separation of concerns" - разделить добычу данных и представление. тыж программист! должен об этом заботиться - фишки типа лаконичной записи подавления тегов, операции с блоками текста и т.п. — нехрен им делать в Модели или Контроллере. - некоторые шаблонизаторы гарантируют, что косяк в разметке не вызовет критическую ошибку. в случае если шаблон может редактироваться бизнес-пользователем, это может быть важно синтаксис это самый незначительный аргумент в выборе. сейчас, слава богу, ты можешь к любому фреймворку любой шаблонизатор подключить в одну строку. прулялизьм!
шаблонизаторы использовались для того, чтобы дать обезъяне повертеть гранату, но с приваренной чекой. В шаблонизаторах нельзя вылезти и делать всякое в системе, творить безобразие с объектами, которые не передавали в шаблон и вообще всячески программировать. мода на шаблонизаторы на пхп можно сказать прошла, забей.
Профессия "html-верстальщик" тоже уже мертвая. Если ты "html-верстальщик", а не "фронтенд-разработчик", то ты никому не нужен. А если ты фронтенд разработчик, то у тебя с бекендом должна быть договоренность о типе транспорта данных и взаимодействии клиент-серверном.
Работаю в паре с frontend разработчиком. Шаблонизаторы мы послали сразу. Если есть вопросы по php спрашивает у меня. Что такое цикл и условия узнал у меня и больше не спрашивает, спокойно работаем. Я долгое время сам пытался воткнутся в шаблонизаторы, даже начал писать свой что бы понять. Итог: он не нужен.