Форумы / National / Russian / шаблонизатор

хвала шаблонам

esclkm
#1 03.01.2009 23:56
в его необходимости никто не сомневается...
только ли вот xtemplate это то что нам надо?
возникло первое сомнение после того как я попытался найти в нем некое подобие на if/ Зачем оно надо?
на смотритке когда мы мыводим некую картинку на сайт - мы в пхп создаем большой кусок кода:
<img style="visibility: visible;" ilo-full-src="http://trac.cotonti.com/chrome/site/logo.jpg" src="/chrome/site/logo.jpg" alt="Cotonti" height="155" width="559">
потом в tpl файле просто юзаем нечто вроде {SUPERIMAGE}

мы хотим вынести весть html из движка, то есть в идеале должна получится переменная вроде такой:
http://trac.cotonti.com/chrome/site/logo.jpg
а уже в темплейт будет попадать так:
<img style="visibility: visible;" ilo-full-src="{SUPERIMAGE}" src="/chrome/site/logo.jpg" alt="Cotonti" height="155" width="559">
но ведь {SUPERIMAGE} может быть равен ""... и тогда вся конструкция пойдет диким пламенем в воздух. это элементарный пример - который ничего по ольшому счету не изменит... но не всегда так может быть, поэтому нам нужен хотя бы элементарный if
типа такого:
{IF SUPERIMAGE}<img style="visibility: visible;" ilo-full-src="{SUPERIMAGE}" src="/chrome/site/logo.jpg" alt="Cotonti" height="155" width="559">{END IF}

так будет все корректно и красиво, а без такого элемента мы не сделает абсолютно независимый от html php - а значит наша идея имеет дыры
(я прочитал всю найденную за день литературу по xtemplate но такой штуик не нашел.
возможно будут тут противники класса:
1. можно вставить блок - можно - но представьте каждую переменную засунуть в блок, вы уверены, что скорость не пойдет боком?
2. шаблонизатор с логикой - не шаблонизатор - поэтому xtemplate лучше смарти - тут палка с двумя концами... не все так круто... иногда элементарная логика нужна, даже в том же xtemplate есть определенные манипуляции - класса приведения к различны регистрам
3. смарти он в 2 раза больше - что значит больше? мы вроде скорость работы рассматриваем. и я не говорю что надо перейти на смарти. xteplate и смарти не 2 единственных шаблонизатора

и к концу своих рассуждений приведу ссылку на blitz шаблонизатор - http://www.alexeyrybak.com/blitz/blitz_ru.html
там если пролистать внимательно есть сводки по скоростным особенностям различных шаблонизаторов - и там позиция xtemplate весьма и весьма низкая... а то же смарти на лидирующих местах

вот такая вот пища для ума...

статьи по теме: http://www.alexeyrybak.com/blitz/blitz_ru.html http://habrahabr.ru/blogs/php/45311/ http://larin.in/archives/16
littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Отредактировано: esclkm (04.01.2009 00:19, 15 лет назад)
Asmo
#2 04.01.2009 00:05
Многа букаф. Смарти тяжелее будет чем хтемплейт, даже если в выводить каждую переменную отдельным блоком. Тем более не для всего подряд это нужно.

if (!empty($pag['page_author'])) 
{
	
	$t->assign(array(
		"PAGE_IFAUTHOR" => $pag['page_author']
			));
			
	$t->parse("MAIN.IF_AUTHOR");
	
}
<!-- BEGIN: IF_AUTHOR -->
<div class="page-author">{PHP.skinlang.page.Author} &nbsp; {PAGE_IFAUTHOR}</div>
<!-- END: IF_AUTHOR -->
esclkm
#3 04.01.2009 00:24
Выше всего была ссылка - а вней таблица производительности: грубо:
php 100%
smatry 400%
некий blitz 200%
xtemplate 10 000%
По мнению автора-тестировавшего xtemplate медленнее php всего в 100 раз. отсюда и вопрос... других нормальных тестов пока не нашел
littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
medar
#4 04.01.2009 01:22
Насчет выноса всего html из ядра я все-таки выскажусь - по-моему, этого не нужно делать вообще. Seditio|Cotonti - не идеальная-cms-для-всего, её преимущество в простоте и быстроте развертывания повседневных сайтов. Надо смириться, сайта для мобильного телефона на нем непрограммисту сделать, а программист сам вынесет что надо, или вообще возьмет php-фреймворк типа code igniter.

Насчет xtemplate. Да, шаблонизатор не особо функциональный, но он как бы дан нам свыше вместе с Seditio. :) Если его менять, то это влечет за собой отказ от совместимости со скинами - почти новая cms получится.

Вообще, странно видеть, что простейший, не имеющий никакой внутренней логики xtemplate показывает такие провальные значения производительности.. Но в любом случае, как показывает практика, основное время ответа сервера занимают запросы mysql, это первая причина тормозов. Оптимизировать остальное - это "экономия на спичках" и "ужасно подорожала соль". :) Да и движок сейчас и так вполне шустр.
rangjungyeshe.ru
esclkm
#5 04.01.2009 01:33
# medar : почти новая cms получится.
мне казалось на этом сайте это и делают)

# medar : Оптимизировать остальное - это "экономия на спичках" и "ужасно подорожала соль".
хм и из грецких орешков можно получить вкуный сок - главное правильно приготовить. немного психофилософии
littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Отредактировано: esclkm (04.01.2009 01:38, 15 лет назад)
medar
#6 04.01.2009 01:53
Начал читать про Blitz
Blitz — расширение PHP, поставляемое пока исключительно в исходных кодах, поэтому его установка состоит из обычных шагов по сборке расширения:
tar zxvf blitz.tar.gz
cd blitz
phpize
./configure
make
make install
Вы можете протестировать Blitz запустив скрипт run-tests.sh
Сразу в топку :)
rangjungyeshe.ru
esclkm
#7 04.01.2009 01:56
да я не Blitz клоню - мне самому не понравилось что он на си.
я про тамашние тесты производительности - которые у меня вызвали много эмоций

найти бы еще какие тесты - а то больше ничего не нахожу - а одному тестировавшему верить возникает какоето внутренне сомнение
littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Trustmaster
#8 04.01.2009 02:00
Я видел и другие, и там XTemplate (кстати, этих самых разных XTemplate в Сети есть несколько, так что надо бы указать, который из них) был не так уж плох и при прочих равных спокойно конкурировал с "компилирующими" шаблонами на PHP. Если сравнивать XTemplate vs. Smarty, то Смарти начинает лидировать только на очень громоздких и сложных шаблонах с большим количеством вложенных блоков и замен (коих в Seditio не наблюдается), а на простых шаблонах его компилирующая подсистема выходит боком: пока он соображает, из кэша загружаться или как, XTemplate уже показывает отрендеренную страничку.

Но что интересно, и Blitz, и cTemplate являются расширениями PHP, написанными на C, и по идее должны просто рвать и метать, и весьма забавно видеть, что старый добрый шаблонизатор PHP (коим PHP изначально и являлся) живее всех живых. Поэтому я всегда говорил и декларирую еще раз: лучший в мире шаблонизатор для PHP - это сам PHP. А вот теперь скажите это вашему дизайнеру, и посмотрите, что он вам на это скажет :)

Если вернуться к Seditio, XTemplate - это то, что я разобрал по кусочкам в первую очередь. Если интересно, вот заключение. Если коротко, то шаблоны грузят сервер меньше всего. И если у вас быстрый сервер БД, то бОльшая часть времени уходит на обработку данных, а не на работу с БД и не на рендеринг вывода из шаблонов.
May the Source be with you!
esclkm
#9 04.01.2009 02:12
безупречно верю... вот только бы где иф достать - тогда шаблоны бы отличались супер многообразием... (хотя... как показала практика - покажите 5 различных шаблонов для seditio? no? kein? няма?) или сделать все блоко-в-блоке-в-блоке-в-блоке-переменная?
littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Trustmaster
#10 04.01.2009 02:30
А вообще, чисто теоретически, XTemplate не самый лучший шаблонизатор, конечно. Но тогда где взять такой же компактный, простой и удобный шаблонизатор, с таким же синтаксисом, но чтоб без таких недостатков?
May the Source be with you!
esclkm
#11 04.01.2009 02:37
давайте посмотрим тут: http://www.plentyofcode.com/2007/08/60-template-engines-for-java-php-and.html ))

самые заслуживающие из тех с первого взгляда:
http://ets.sourceforge.net/
http://simonster.com/software/sstp/directives/sstp-write.thtml
http://templatelite.sourceforge.net/
http://www.phpguru.org/downloads/template/

все остальное ерунда
littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Отредактировано: esclkm (04.01.2009 03:23, 15 лет назад)
medar
#12 04.01.2009 03:03
Но тогда где взять такой же компактный, простой и удобный шаблонизатор, с таким же синтаксисом, но чтоб без таких недостатков?
А может.. немного дописать xtemplate ? :)
rangjungyeshe.ru
esclkm
#13 04.01.2009 03:28
наверное это будет супер рациональным решением - с учетом того что половина шаблонизатора - это комментраии, то переделать это я думаю легко) исправить ошибки - добавить фунций и все суперски!
(может оттуда в какой ридми файл повыносить комменты)
littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты
Отредактировано: esclkm (04.01.2009 03:57, 15 лет назад)