За последние 24 часа нас посетили 30756 программистов и 1481 робот. Сейчас ищут 897 программистов ...

Преимущества шаблонизаторов

Тема в разделе "PHP для новичков", создана пользователем machetero, 30 янв 2016.

  1. machetero

    machetero Активный пользователь

    С нами с:
    25 окт 2014
    Сообщения:
    499
    Симпатии:
    21
    Я очень слабо знаком с шаблонизаторами и не знаю зачем они нужны. Сейчас пришлось столкнуться с Blade'ом. Там пишут что такое
    Код (PHP):
    1. @foreach($arr as $val)
    2. //здесь что то делают
    3. @endforeach
    переменные вроде так выводятся
    Код (PHP):
    1. {!! $var !!}
    И вроде как я понял это потом компилируется в обычный php-код. Те в обычные форич и принт. Если не прав поправьте. Объясните зачем писать на языке шаблонизатора, если можно сразу на пхп. Ну и если я в корне не прав, объясните мне зачем нужен шаблонизатор.

    Добавлено спустя 3 минуты 50 секунд:
    Ещё часто слышу фразу "пхп сам по себе шаблонизатор". Но поскольку я не знаю что такое шаблонизатор, поэтому смысл фразы не понимаю. Но что такое шаблон я знаю.
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    именно так и есть.
    есть у тебя статический файл. ими сервера обменивались пол века назад. допустим хтмл:
    Код (PHP):
    1. <html><head><title>hello</title></head><body><h1>hello world</h1><p>die hard</p></body></html>
    и вот ты решаешь сделать из него пхп-файл
    Код (PHP):
    1. <?php $title = 'hello'; $h1 = 'hello world'; ?>
    2. <html><head><title><?=$title?></title></head><body><h1><?=$h1?></h1><p>die hard</p></body></html>
    вот ты и превратил исходный хтмл в шаблон с подстановкой переменных. в процессе исполнения ты эти переменный объявил, их значения вписались в нужное место в потоке и получился такой же хтмл как был в случае со статическим. ты заполнил шаблон данными.
    но. эти значения могут быть другими. и страницы от этого будут получаться другими. но шаблон у них будет общим.

    зачем шаблонизаторы на пхп? наверное это удобство. ты выделяешь всю работу с выходными данными в отдельный инструмент. шаблоны могут быть значительно ограничены в алгоритмической функциональности а значит с его редактированием справится любая секретарша - ей не придется учить программирование, а будет достаточно тупо знать как переменная в шаблон вставляется.
     
  3. machetero

    machetero Активный пользователь

    С нами с:
    25 окт 2014
    Сообщения:
    499
    Симпатии:
    21
    Тем более если они ограничены в функционале, не понимаю зачем учить их синтаксис, если всё можно сделать лучше на пхп.
     
  4. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    Шаблонизатор и есть пхп, он написан на нём.
    Не знаю как Blade или Twig, но от Smarty я в восторге.
    А создание шаблонов с использованием "php кода", ящитаю, прошлый век.
     
  5. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Потому-что шаловливые ручки нахреначат кучу говнокода прямо в шаблон. А в шаблоне должен быть шаблон, а не какие-нибуль сортировки. Весь необходимый функционал выносится в хелперы. Все это можно и на чистом ПХП (делать методы-хелперы), но если бы все все делали правильно... Неоспоримым преимуществом шаблона так же является возможность автоматического htmlspecialchars выводимых данных, что защищает от XSS по невнимательности. Так же часто читаемость шаблона лучше, чем читаемость аналога на чистом ПХП, т.е. роль синтаксического сахара.
     
  6. machetero

    machetero Активный пользователь

    С нами с:
    25 окт 2014
    Сообщения:
    499
    Симпатии:
    21
    Ладно попробую поэксперементировать, может тоже понравиться.
    Если вы аргументировали бы, я был бы вам признателен
    Ваш ответ более менее что то прояснил для меня. Спасибо.
     
  7. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    с использование шаблонизатора меньше приходится писать, в этом преимущество, только надо выучить.

    с тем же успехом можно писать сайты на C++, а не на РНР.
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    шаблонизаторы нужны чтобы впустить в проект обезьян
     
    DMTR3000S нравится это.
  9. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    Истина где-то рядом. Существуют шаблонизаторы без собственного языка разметки. Они просто реализуют типичные для Представления операции. см. plates
    Ну Twig точно для этого. Я какое-то время не мог уяснить для себя зачем нужен твиг. Точнее зачем было реализовать его так дорого, с серьезным оверхедом. А потом встретил простое объяснение: он написан так, чтобы ни при каких раскладах не дать наборщику выйти за пределы песочницы, вызвать чего нельзя и вызвать крах.
     
    DMTR3000S нравится это.