За последние 24 часа нас посетили 22028 программистов и 1146 роботов. Сейчас ищут 619 программистов ...

Шаблонизаторы

Тема в разделе "Вопросы от блондинок", создана пользователем za-ek, 9 сен 2017.

  1. za-ek

    za-ek Новичок

    С нами с:
    9 сен 2017
    Сообщения:
    1
    Симпатии:
    0
    Привет, форумчане.
    Я давно работаю с PHP, но в основном на чистом языке, сейчас разбираюсь с фреймворками и не могу найти ответ на один вопрос: нафига нужны шаблонизаторы?

    Чем вот такой вариант:

    Код (Text):
    1. {% for item in navigation %}
    2.     <li><a href='{{ item.href }}'>{{ item.caption }}</a></li>
    3. {% endfor %}
    Лучше этого:

    PHP:
    1. <?php foreach ($navigation as $item) { ?>
    2.     <li><a href='<?=$item->href?>'><?=$item->caption ?></a></li>
    3. <?php } ?>
    Или этого:

    PHP:
    1. <?php
    2. foreach ($navigation as $item) {
    3.     echo "<li><a href='{$item->href}'>{$item->caption}</a></li>";
    4. }
    5. ?>
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    А ничем. В 95% случаев - шаблонизаторы нужны для решения придуманной проблемы, суть которой в том, что веб-разработчики боятся, что у них в коде где-то будет генерироваться HTML, а это зашквар и не по-пацански, и следующим шагом уже героин, а потом прыжок с балкона.

    По этому им проще заставить систему парсить регулярками шаблоны, чтобы потом она втыкала на место замудреных тегов данные нужные. А они типа спокойны, что это ж не они написали, это другое средство делает, они типа чисты перед собой. Нелогичная дичарня. Шаблонизаторы - это мода середины 2000х, начала 2010х.

    Не, может где-то там они и нужны, мне вот все доказывают их полезность, мол, наследования там есть, еще что-то, но это все, имхо, костыль, призванный прикрыть кривую логику архитектуры исходного приложения.
     
    ruslan.p нравится это.
  3. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
    в плане синтаксиса ничем не лучше. шаблоны бывают и на голом php. да-да-да! от этого они не перестают быть шаблонами вывода. гугли "php plates" или "symfony php template engine". ларавелевский blade тоже не расово чистый шаблонизатор, он вполне себе допускает включение php

    так что же есть кроме синтаксиса:
    - "separation of concerns" - разделить добычу данных и представление. тыж программист! должен об этом заботиться
    - фишки типа лаконичной записи подавления тегов, операции с блоками текста и т.п. — нехрен им делать в Модели или Контроллере.
    - некоторые шаблонизаторы гарантируют, что косяк в разметке не вызовет критическую ошибку. в случае если шаблон может редактироваться бизнес-пользователем, это может быть важно

    синтаксис это самый незначительный аргумент в выборе. сейчас, слава богу, ты можешь к любому фреймворку любой шаблонизатор подключить в одну строку. прулялизьм!
     
    za-ek нравится это.
  4. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    шаблонизаторы использовались для того, чтобы дать обезъяне повертеть гранату, но с приваренной чекой. В шаблонизаторах нельзя вылезти и делать всякое в системе, творить безобразие с объектами, которые не передавали в шаблон и вообще всячески программировать.

    мода на шаблонизаторы на пхп можно сказать прошла, забей.
     
    Fell-x27, za-ek и denis01 нравится это.
  5. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Потому что это всё удобнее делать на фронте: vue, react и прочее.
     
    Fell-x27 и igordata нравится это.
  6. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.199
    Симпатии:
    184
    Чтобы html верстальщик смог что-то изменить в коде, который не знает php
     
  7. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Профессия "html-верстальщик" тоже уже мертвая. Если ты "html-верстальщик", а не "фронтенд-разработчик", то ты никому не нужен. А если ты фронтенд разработчик, то у тебя с бекендом должна быть договоренность о типе транспорта данных и взаимодействии клиент-серверном.
     
    xaker01 нравится это.
  8. xaker01

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

    С нами с:
    16 апр 2016
    Сообщения:
    210
    Симпатии:
    34
    Работаю в паре с frontend разработчиком.
    Шаблонизаторы мы послали сразу.
    Если есть вопросы по php спрашивает у меня.

    Что такое цикл и условия узнал у меня и больше не спрашивает, спокойно работаем.
    Я долгое время сам пытался воткнутся в шаблонизаторы, даже начал писать свой что бы понять.
    Итог: он не нужен.
     
    Fell-x27 и Dimon2x нравится это.
  9. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.237
    Адрес:
    там-сям
    любая крайняя точка зрения ущербна :)