Я очень слабо знаком с шаблонизаторами и не знаю зачем они нужны. Сейчас пришлось столкнуться с Blade'ом. Там пишут что такое Код (PHP): @foreach($arr as $val) //здесь что то делают @endforeach переменные вроде так выводятся Код (PHP): {!! $var !!} И вроде как я понял это потом компилируется в обычный php-код. Те в обычные форич и принт. Если не прав поправьте. Объясните зачем писать на языке шаблонизатора, если можно сразу на пхп. Ну и если я в корне не прав, объясните мне зачем нужен шаблонизатор. Добавлено спустя 3 минуты 50 секунд: Ещё часто слышу фразу "пхп сам по себе шаблонизатор". Но поскольку я не знаю что такое шаблонизатор, поэтому смысл фразы не понимаю. Но что такое шаблон я знаю.
именно так и есть. есть у тебя статический файл. ими сервера обменивались пол века назад. допустим хтмл: Код (PHP): <html><head><title>hello</title></head><body><h1>hello world</h1><p>die hard</p></body></html> и вот ты решаешь сделать из него пхп-файл Код (PHP): <?php $title = 'hello'; $h1 = 'hello world'; ?> <html><head><title><?=$title?></title></head><body><h1><?=$h1?></h1><p>die hard</p></body></html> вот ты и превратил исходный хтмл в шаблон с подстановкой переменных. в процессе исполнения ты эти переменный объявил, их значения вписались в нужное место в потоке и получился такой же хтмл как был в случае со статическим. ты заполнил шаблон данными. но. эти значения могут быть другими. и страницы от этого будут получаться другими. но шаблон у них будет общим. зачем шаблонизаторы на пхп? наверное это удобство. ты выделяешь всю работу с выходными данными в отдельный инструмент. шаблоны могут быть значительно ограничены в алгоритмической функциональности а значит с его редактированием справится любая секретарша - ей не придется учить программирование, а будет достаточно тупо знать как переменная в шаблон вставляется.
Тем более если они ограничены в функционале, не понимаю зачем учить их синтаксис, если всё можно сделать лучше на пхп.
Шаблонизатор и есть пхп, он написан на нём. Не знаю как Blade или Twig, но от Smarty я в восторге. А создание шаблонов с использованием "php кода", ящитаю, прошлый век.
Потому-что шаловливые ручки нахреначат кучу говнокода прямо в шаблон. А в шаблоне должен быть шаблон, а не какие-нибуль сортировки. Весь необходимый функционал выносится в хелперы. Все это можно и на чистом ПХП (делать методы-хелперы), но если бы все все делали правильно... Неоспоримым преимуществом шаблона так же является возможность автоматического htmlspecialchars выводимых данных, что защищает от XSS по невнимательности. Так же часто читаемость шаблона лучше, чем читаемость аналога на чистом ПХП, т.е. роль синтаксического сахара.
Ладно попробую поэксперементировать, может тоже понравиться. Если вы аргументировали бы, я был бы вам признателен Ваш ответ более менее что то прояснил для меня. Спасибо.
с использование шаблонизатора меньше приходится писать, в этом преимущество, только надо выучить. с тем же успехом можно писать сайты на C++, а не на РНР.
Истина где-то рядом. Существуют шаблонизаторы без собственного языка разметки. Они просто реализуют типичные для Представления операции. см. plates Ну Twig точно для этого. Я какое-то время не мог уяснить для себя зачем нужен твиг. Точнее зачем было реализовать его так дорого, с серьезным оверхедом. А потом встретил простое объяснение: он написан так, чтобы ни при каких раскладах не дать наборщику выйти за пределы песочницы, вызвать чего нельзя и вызвать крах.