Я вообще не понимаю зачем нужны такие шаблонизаторы,неужели этот код:
{% if online == false %}
<p>Our website is in maintenance mode. Please, come back later.</p>
{% endif %}
Понятней,быстрей и красивей этого?
<?php if (online == false){ ?>
<p>Our website is in maintenance mode. Please, come back later.</p>
<?php } ?>
# Rakovskiy (26.07.2014 / 18:29)
Я вообще не понимаю зачем нужны такие шаблонизаторы,неужели этот код:
{% if online == false %}
<p>Our website is in maintenance mode. Please, come back later.</p>
{% endif %}
+ намного хуже читабелен и как по мне он замедляет работу сайта!
# NURD (26.07.2014 / 14:57)
Я Twig и использую)) А это давно забытая тема. Я решил переотписаться.
Позволю себе задать вопрос: а ЗАЧЕМ ты используешь Twig?
---
Ты не подумай, я вовсе троллингом не намерен заниматься. Как говорится "тебя за язык никто не тянул".
Сам открыл тему, значит готов к диалогу.
Я лично всегда выступал против попсово-модных штучек, если что-то использую, у меня есть четкие критерии ПОЧЕМУ и ЧТО я хотел этим добиться. Прежде, чем остановиться на определенной системе шаблонизации (которую кстати в скором времени увидите), я перепробовал кучу готовых, было написано с десяток вариантов своих, в итоге потом была отброшена вся шелуха и осталось только нужное.
ЧТО дает тебе Twig, в комплекте с чем ты его используешь?
И кстати, там выше кто-то тоже рекомендовал Twig, ему тоже адресуется вопрос!
Почему стоит использовать твиг?
Если кому-то не нравится многословность php, то твиг хороший вариант.
Не нужно думать о наследовании шаблонов. Здесь уже сделали всё за вас.
Поддержка в имеется во многих IDE.
Мне например не нравится, когда IDE постоянно ругается на не определенные переменные или ссылается на какие-то левые, которые определены черт знает где, только не там, где нужно.
Я вижу три выхода из этой ситуации: не использовать php для шаблонов, писать свой экстеншен для IDE, который будет разруливать эту ситуацию.
Найти/написать свой шаблонизатор, шаблоны для которого можно писать на похапе, но IDE при этом не будет ругаться.
Проседает производительность?
Ну я бы тут не стал выпендриваться и задумался бы только тогда, когда это действительно вина шаблонизатора. Да и в конце концов мало у кого такая большая посещалка, чтобы стоило так сильно беспокоится о производительности. ИМХО.
ЗЫ: сам его не использую, т.к. меня пока устраивает похапе. Да и вообще я уже забыл, когда последний раз шаблоны писал, т.к. в основном мне нужно только хоумпагу отдать, а остальное всё в json гоняется.
# reaper (27.07.2014 / 23:39)
Если кому-то не нравится многословность php, то твиг хороший вариант.
Не нужно думать о наследовании шаблонов. Здесь уже сделали всё за вас.
ЗЫ: сам его не использую, т.к. меня пока устраивает пох
Ога
Насчет многословности РНР - могу поспорить. Если использовать короткие echo тэги <?= ?> то все весьма просто и понятно. На сегодняшний день, когда короткие echo тэги по-умолчанию открыты во всех новых версиях РНР, писать в своих шаблонах что-то типа <?php echo 'HI' ?> это моветон и индокод.
А если использовать TWIG, то кажущаяся в начале (и широко разрекламированная) простота, оборачивается необходимостью изучать еще один язык разметки, все его тэги и функции.
К тому же, сам Twig по размеру сопоставим со всем нашим двигом вместевзятым.
# reaper (27.07.2014 / 23:39)
Мне например не нравится, когда IDE постоянно ругается на не определенные переменные или ссылается на какие-то левые, которые определены черт знает где, только не там, где нужно.
Нужно правильно писать шаблоны и шаблонизаторы.
Большинство сразу же кидаются использовать функцию extract(), в шаблонах лепят простые переменные $var и соответственно, IDE будет ругаться (и правильно делает).
Вместо этого, в шаблонизаторе надо использовать магический метод __get() (или offsetGet в случае ArrayObject), который в случае отсутствия запрашиваемой переменной выдает FALSE.
В шаблонах используешь $this->var
Зато как плюс - у тебя не будет неинициализированных переменных, ЛЮБАЯ получит свое значение (в крайнем случае FALSE). Так намного удобнее, выкинь ты этот extract()
# AlkatraZ (28.07.2014 / 00:07)
Ога
Насчет многословности РНР - могу поспорить. Если использовать короткие echo тэги <?= ?> то все весьма просто и понятно. На сегодняшний день, когда короткие echo тэги по-умолчанию открыты во
Я в курсе про шорттеги, и юзал их еще до того, как это стало мейнстримом
Гг.
Если бы можно было и для циклов, условий и прочего короткие теги использовать, тогда согласился бы. И мне кажется, что {% for i in items %} {{i}} {% endfor %} куда проще для восприятия нежели <?php foreach ($items as $i): ?><?= $i ?><?php endforeach; ?>, а если еще и не использовать альтернативный синтаксис, то вообще каша получается.
Ну а размер. Кто на него сейчас смотрит? Мне вот лично пофигу, сколько оно весит, главное, чтобы было хорошо протестировано и предоставляло необходимый функционал.
Конечно разумные пределы должны быть, но я не думаю, что кому-то удастся раздуть либу метров на 50, если конечно не быдлокодить слишком жесско. Да и зачастую половину этого кода занимают тесты и документация, что есть очень хорошо.
# AlkatraZ (28.07.2014 / 00:13)
выкинь ты этот extract()
уже сто лет как. Я тут где-то приводил ссылку на свой™ шаблонизатор. Если интересно, то можешь покритиковать, а то nurd что-то не захотел
# AlkatraZ (27.07.2014 / 22:13)
Позволю себе задать вопрос: а ЗАЧЕМ ты используешь Twig?
---
Ты не подумай, я вовсе троллингом не намерен заниматься. Как говорится "тебя за язык никто не тянул".
Сам открыл тему, значит готов к ди
Все сказано на сайте
http://twig.kron0s.com/
Процитирую некоторые важные функции:
1) Twig имеет более лаконичный синтаксис, который позволяет легко читать шаблоны
2) Twig поддерживает все, что вам надо для использования шаблонов: множественное наследование, блоки,
автоматическое экранирование и многое другое
3) Синтаксис просто изучить и оптимален для верстальщиков, что позволяет им быстро выполнять свою работу
4) Быстрый: Twig компилирует шаблоны в оптимизированный PHP код. Использование памяти по сравнению с обычным PHP кодом сведено к
минимуму.