Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: INCLUDE / IF / FOREACH (и т д) в шаблоне
Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013
Помог: 91 раз(а)
Блин, вот не понимаю я товарищей, которые используют шаблонизаторы всякие там смарти твиги или ещё хуже пишут свои шаблонизаторы.
Зачем, вам, может, понадобиться, шаблонизатор? Что бы верстальщику было проще? (Встречал такое мнение, поржал. С квадратными скобками ему же проще)
Что мешает сразу использовать родной if не оборачивая его в какие то непонятно зачем квадратные скобки а потом ещё и придумывать как запрограммировать парсинг своего никому ненужного синтаксиса да ещё и отлаживать это дело. Даже думать не начну над поставленным вопросом.
P.S: в тему пришел не поворчать, а подсказать, что вы занимаетесь бесполезным делом.
DelphinPRO
Отправлено: 25 Июля, 2015 - 17:21:48
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
Slash Zn пишет:
Просьба моя к Вам, покажите, пожалуйста, пример, как сделать, что бы можно было использовать INCLUDE / IF / FOREACH в шаблонах, что то типа того:
не изобретайте велик. Хороший шаблонизатор написать - дело не простое. Возьмите готовый, рекомендую Twig (простой и мощный).
teddy пишет:
вот не понимаю я товарищей, которые используют шаблонизаторы всякие там смарти твиги
Это удобно, в случае использования готового шаблонизатора, а не использования наколенной писанины. В холиваре участвовать не буду, можешь не начинать
----- Чем больше узнаю, тем больше я не знаю.
teddy
Отправлено: 25 Июля, 2015 - 17:35:45
Участник
Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013
Помог: 91 раз(а)
DelphinPRO
Да мне тоже не особо хочется спорить )
Только непонятно в чем удобство. Я действительно этого не понимаю.
ob_start, extract, include, ob_get_clean - этих 4 функций достаточно что бы сгенерить полноценный шаблон используя нативный синтаксис.
Кстати это как раз один из тех немногих случаев, где я готов защитить сторону экономии на спичках(собственный синтаксис и разметку в n строк кто то же парсит) Ну да ладно... )
Покинул форум
Сообщений всего: 17
Дата рег-ции: Июль 2015
Помог: 0 раз(а)
Я знал, что в первую очередь в теме будут ответы от людей, которые против шаблонов.
teddy пишет:
Даже думать не начну над поставленным вопросом.
Дело ваше. Конкретно вас я и не просил.
DelphinPRO пишет:
Возьмите готовый, рекомендую Twig (простой и мощный).
Была такая идея... Посмотрю, что за шаблонизатор такай. Спасибо.
DelphinPRO
Отправлено: 25 Июля, 2015 - 18:22:07
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
teddy пишет:
Только непонятно в чем удобство. Я действительно этого не понимаю.
ob_start, extract, include, ob_get_clean - этих 4 функций достаточно что бы сгенерить полноценный шаблон используя нативный синтаксис.
Покажи, как ты реализуешь этими функциями наследование шаблонов?
Допустим, обычная страница должна отображаться полностью, а 404 без шапки и подвала.
Да, это можно реализовать пыхом, но тебе придется написать отдельную подсистему, которая, в свою очередь и будет являться шаблонизатором (пусть и с нативным php-синтаксисом). Самописным, с дырками Или без дырок, если постараешься. Но в любом случае - это лишняя трата времени.
Ну и твиге, в частности, есть куча других примочек
teddy пишет:
я готов защитить сторону экономии на спичках(собственный синтаксис и разметку в n строк кто то же парсит)
Да брось Я думал ты в курсе, что любой подобный шаблонизатор кеширует шаблоны в виде php-кода, а не парсит их при каждом запросе.
ну и еще хочу отметить, что я, в принципе, не против шаблонов с нативным php-кодом, просто я не встречал хороших шаблонизаторов такого типа, а самому писать - влом
----- Чем больше узнаю, тем больше я не знаю.
teddy
Отправлено: 26 Июля, 2015 - 00:15:15
Участник
Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013
Помог: 91 раз(а)
DelphinPRO пишет:
Покажи, как ты реализуешь этими функциями наследование шаблонов?
Наследование шаблонов? Не, я таким не занимаюсь) У меня несколько иной подход к генерации разметки. Для меня есть только объект View в который можно встраивать такие же объекты с неограниченным уровнем вложенности (иерархия однотипных объектов)
Это все что нужно чтоб встроить один шаблон в другой когда это требуется. В самих вьюшках так же спокойно использую плагины для вью, например $this->translate('phrase'); (а ты как их юзаешь? много танцевать приходится?)
Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013
Помог: 91 раз(а)
Убрал много букаф выше.
Видимо, нужно было показать код... В спойлере реализация того, как я предпочитаю вести процесс рендеринга.
Правда много чего я оттуда убрал, что бы сосредоточиться конкретно на рендеринге.
Например убрал родительский класс, где реализован __call для плагинов, вместо интерфейса в addChild указал конкретную реализацию и ещё кое что.
Как видишь, "подсистема" очень проста. Если копнуть чуть глубже, то в конечном счете все ещё проще.
Если стало интересно, могу расписать workflow, где общий рендеринг сводится просто к "однажды инициализировать общий шаблон, а дальше просто возвращать массив из action-a".
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.