Шаблоны
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Шаблоны
совсем недавно наткнулся на такую штуку http://sourceforge.net/projects/php-templates/. Заинтерисовало тем, что на пхп.нет про неё ни слова не написано. Почитал доку, в принципе вещь интересная. Кто-нибудь ей пользовался?
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
- Alex Keda
- стреляли...
- Сообщения: 35439
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
Re: [PHP] Шаблоны
невижу каких-то преимуществ перед самописными темплейтами, которые юзаю.
может будет чуть быстрей - но у у меня и так тысячные секунды на сбрку из полусони шаблонов...
может будет чуть быстрей - но у у меня и так тысячные секунды на сбрку из полусони шаблонов...
Убей их всех! Бог потом рассортирует...
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: [PHP] Шаблоны
я тоже честно говоря не вижу никаких преимуществ -)))) однако он компилированный модуль, это уже интересно, потому что сколько бы не кичился тотже смарти своей красотой и быстротой, ресурсов он кушает немало. Удручает тут собственно функционал - очень скудно. Но хотелось бы услышать ещё мнение тех, кто его юзал.
На данный момент, я так думаю, надо переходить тотально на XSLT. Но может я чего-то упускаю отказываясь от этого модуля?
На данный момент, я так думаю, надо переходить тотально на XSLT. Но может я чего-то упускаю отказываясь от этого модуля?

- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: [PHP] Шаблоны
где-то было написано что этот шаблон из perl интегрировали (не смотрел - не знаю)
про смарти говорили что не реально использовать, но легко там просто массивы загрузить, то есть только ресурсов выделить, я использвоал gallery2, которая на смарти, это ужос был на одного пользователя 10М рама
если используется mod-php, то php и html одно целое как и разницы нету где html...
про смарти говорили что не реально использовать, но легко там просто массивы загрузить, то есть только ресурсов выделить, я использвоал gallery2, которая на смарти, это ужос был на одного пользователя 10М рама
если используется mod-php, то php и html одно целое как и разницы нету где html...
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: [PHP] Шаблоны
-))) есть такое дело. Но если бы смарти был компилированным модулем пхп на С++, то я бы пожалуй его использовал и неважно, сколько бы он жрал. Важно то, что он бы был включён в дистрибутив пхп.ProFTP писал(а):я использвоал gallery2, которая на смарти, это ужоснах был на одного пользователя 10М рама
суть не в этом, а в том чтобы разделить логически обработку информации и её вывод. Это позволяет во-первых упростить код, а во-вторых разделить работу - одни пишут шаблоны, вторые пишут логику. Смарти делал упор как раз на это разделение.ProFTP писал(а):если используется mod-php, то php и html одно целое как и разницы нету где html...
В принципе с точки зрения обывателя смарти избавляет от многих проблем и даёт весомые преимущества. Но чтобы его использовать надо знать как минимум два языка - пхп и смарти

Помимо смарти есть интересный шаблонизатор - парсер от артлебедева. Это самостоятельный сервер, он основан и предназначен для шаблонов. Очень простой, функциональный и быстрый, но увы никак с пхп не связан....
Ещё один шаблонизатор, который заслуживает внимания - тот, который стоит в пхпББ. Лёгкий и функциональный, ресурсов кушает тоже не мало, но, в отличие от смарти, в меньшей степени напоминает пхп по синтаксису -)))
Поэтому хотелось бы узнать, может кто-нибудь использует шаблонизаторы сторонних производтелей, которые заслуживают внимания?
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: [PHP] Шаблоны
я использую HTML::Template кэширую в оперативку
еще есть
http://search.cpan.org/~tinita/HTML-Tem ... ompiled.pm
http://search.cpan.org/~samtregar/HTML- ... .05/JIT.pm
можно пхп сессии использовать а шаблоны на перле
Код: Выделить всё
blind_cache - if set to 1 the module behaves exactly as with normal caching but does not check to see if the file has changed on each request. This option should be used with caution, but could be of use on high-load servers. My tests show blind_cache performing only 1 to 2 percent faster than cache under mod_perl.
NOTE: Combining this option with shared_cache can result in stale templates stuck permanently in shared memory!
http://search.cpan.org/~tinita/HTML-Tem ... ompiled.pm
http://search.cpan.org/~samtregar/HTML- ... .05/JIT.pm
можно пхп сессии использовать а шаблоны на перле
что это? от чего?артлебедева
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: [PHP] Шаблоны
-))) это практически XSLT в чистом виде, только проще и намного быстрее.ProFTP писал(а):еще есть httр://search.cpan.org/~tinita/HTML-Tem ... ompiled.pm
не, пожалуй это перебор -)))ProFTP писал(а):можно пхп сессии использовать а шаблоны на перле
- hizel
- дядя поня
- Сообщения: 9032
- Зарегистрирован: 2007-06-29 10:05:02
- Откуда: Выборг
Re: [PHP] Шаблоны
вот еще есть отечественная разработка
http://reki.ru/products/ctpp/
http://reki.ru/products/ctpp/
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: [PHP] Шаблоны
hizel писал(а):вот еще есть отечественная разработка
Код: Выделить всё
Пример 3.1:
Шаблон:
<table width="100%">
<TMPL_loop EMPLOYEE_INFO>
<tr>
<td>#: <TMPL_var __COUNTER__></td>
<td>Имя: <TMPL_VAR NAME></td>
<td>Должность: <TMPL_VAR JOB></td>
</tr></TMPL_LOOP>
</table>
....В тоже время, библиотека быстрее широкоизвестных проектов типа Xalan-C или libxslt потому, что не предоставляет излишнюю, зачастую ненужную, но снижающую производительность функциональность.

-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: [PHP] Шаблоны
Код: Выделить всё
<xsl:for-each select="table/column">
<th>
<a href="{@href}" title="{.}"><xsl:value-of select="." /></a>
</th>
</xsl:for-each>
- hizel
- дядя поня
- Сообщения: 9032
- Зарегистрирован: 2007-06-29 10:05:02
- Откуда: Выборг
Re: [PHP] Шаблоны
они все похожи, тут оно по мотивам HTML::Templates сделано
мне из тэмплейтов больше нравится то, что сделанно в python
особенно Jinja
мне из тэмплейтов больше нравится то, что сделанно в python
особенно Jinja
Код: Выделить всё
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en">
<head>
<title>My Webpage</title>
</head>
<body>
<ul id="navigation">
{% for item in navigation %}
<li><a href="{{ item.href }}">{{ item.caption }}</a></li>
{% endfor %}
</ul>
<h1>My Webpage</h1>
{{ a_variable }}
</body>
</html>
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: [PHP] Шаблоны
я смотрел и пилил несколько больши программ на пхп, лучше всего без шаблона можно разделить данные в 2 этапа...в первом код. а во втором шаблон
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: [PHP] Шаблоны
элементов много кажется на странице? шаблон должен быть такой чтобы не ставить дофига всего, или зачем тогда шаблон?hizel писал(а):они все похожи, тут оно по мотивам HTML::Templates сделано
мне из тэмплейтов больше нравится то, что сделанно в python
особенно JinjaКод: Выделить всё
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html lang="en"> <head> <title>My Webpage</title> </head> <body> <ul id="navigation"> {% for item in navigation %} <li><a href="{{ item.href }}">{{ item.caption }}</a></li> {% endfor %} </ul> <h1>My Webpage</h1> {{ a_variable }} </body> </html>
В чем разница
Код: Выделить всё
for item in navigation {
echo ' <li><a href="{{ item.href }}">{{ item.caption }}</a></li>'
}
Код: Выделить всё
push @{$rows}, $_ while $_ = $sth->fetchrow_hashref();
# instantiate the template and substitute the values
my $template = HTML::Template->new(filename => 'songs.tmpl');
$template->param(ROWS => $rows);
<table>
<!-- TMPL_LOOP NAME=ROWS -->
<tr>
<td><!-- TMPL_VAR NAME=TITLE --></td>
<td><!-- TMPL_VAR NAME=ARTIST --></td>
<td><!-- TMPL_VAR NAME=ALBUM --></td>
<td><!-- TMPL_VAR NAME=YEAR --></td>
</tr>
<!-- /TMPL_LOOP -->
</table>
Код: Выделить всё
my $data = $DBH->selectall_arrayref("
select @{[join(',', @COLS)]}
from songs
order by ?
", undef, ($sort));
# prepare the DS for the headers
# prepare the DS for the rows
my $i;
my $rows = [
map {
my $row = $_;
(++$i % 2)
? { ODD => [ map { {VALUE => $_} } @{$row} ] }
: { EVEN => [ map { {VALUE => $_} } @{$row} ] }
} @{$data}
];
<TMPL_LOOP NAME=ROWS>
<tr>
<TMPL_UNLESS NAME="__ODD__">
<TMPL_LOOP NAME=EVEN>
<td style="background: #B3B3B3"><TMPL_VAR NAME=VALUE></td>
</TMPL_LOOP>
<TMPL_ELSE>
<TMPL_LOOP NAME=ODD>
<td style="background: #CCCCCC"><TMPL_VAR NAME=VALUE></td>
</TMPL_LOOP>
</TMPL_UNLESS>
</tr>
</TMPL_LOOP>
- hizel
- дядя поня
- Сообщения: 9032
- Зарегистрирован: 2007-06-29 10:05:02
- Откуда: Выборг
Re: [PHP] Шаблоны
да везде принцип одинаковый
разделяем логику обработки данных и логику отображения данных, тут довольно тонкая граница, можно легко скотицо к аля-php всё в одном
разные системы шаблонов по разному в этом плане ориентированы
некоторые, как например HTML::Templates жестоко ограничивают кол-во операций и возможностей
другие отдают на откуп создателю, такие например как Template Toolkit, в котором с помощью плагинов, можно даже мускул запросы слать
золотую середину каждый выбирает сам
разделяем логику обработки данных и логику отображения данных, тут довольно тонкая граница, можно легко скотицо к аля-php всё в одном
разные системы шаблонов по разному в этом плане ориентированы
некоторые, как например HTML::Templates жестоко ограничивают кол-во операций и возможностей
другие отдают на откуп создателю, такие например как Template Toolkit, в котором с помощью плагинов, можно даже мускул запросы слать
золотую середину каждый выбирает сам

В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: [PHP] Шаблоны
это тоже жырная штука Template Toolkit, можно на ней написать CMS, не использую perl и php
- hizel
- дядя поня
- Сообщения: 9032
- Зарегистрирован: 2007-06-29 10:05:02
- Откуда: Выборг
Re: [PHP] Шаблоны
это из той же серии, что и "можно гланды через анус отрезать" 

В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.
- ProFTP
- подполковник
- Сообщения: 3388
- Зарегистрирован: 2008-04-13 1:50:04
- Откуда: %&й
- Контактная информация:
Re: [PHP] Шаблоны
это кстате можно так как у тебя в это шаблоне шаблолне будет myqsl, массивы, хэши, цыклы, арифметические выражения
- hizel
- дядя поня
- Сообщения: 9032
- Зарегистрирован: 2007-06-29 10:05:02
- Откуда: Выборг
Re: [PHP] Шаблоны
ты это к чему ?
вот еще аспект - разделение труда
в самом элементарном случае, один программист и один дизайнер
дизайнеру нужен инструмент который не напрягает его лишними знаниями,
то есть попробуй напряги и выучи человека xslt
нужен простой язык шаблонов причём такой чтобы его ограничители не ломали например подсветку в редакторе HTML-ном
jinja как раз с таким прицелом и делалась их кстати таких еще пачка в интернетах
чего чего а шаблонов для pythn вагон и тележка, разных есть и xml подобные
вот еще аспект - разделение труда
в самом элементарном случае, один программист и один дизайнер
дизайнеру нужен инструмент который не напрягает его лишними знаниями,
то есть попробуй напряги и выучи человека xslt
нужен простой язык шаблонов причём такой чтобы его ограничители не ломали например подсветку в редакторе HTML-ном
jinja как раз с таким прицелом и делалась их кстати таких еще пачка в интернетах
чего чего а шаблонов для pythn вагон и тележка, разных есть и xml подобные
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.
-
- полковник
- Сообщения: 5845
- Зарегистрирован: 2007-12-07 13:51:33
- Откуда: Верх-Нейвинск
Re: [PHP] Шаблоны
а кто-нибудь XSLT юзает? пятый раз начинаю читать спецификацию XSLT и всё-равно нифига не понимаю...
- Volodymyr
- лейтенант
- Сообщения: 614
- Зарегистрирован: 2008-06-17 16:04:56
- Откуда: Ukraine, Lviv
- Контактная информация:
Re: [PHP] Шаблоны
Я использовал на старой роботе. Жутко интересная вещь. Чем-то на Пролог похожа. Два единственных минуса. 1. Очень прожорливая (тогда оно саблотроном крутилось, сейчас говорят не особо шустрее стало) ну и 2. Нелинейность языка все-таки резко сужает количество разработчиков которые могут поддерживать. вот и скатился к Смарти с его компилированными шаблонами (по суте тоже РНР)и кешированием страниц. Если честно по скорости нареканий пока нету, хотя смотреть надо в каждом частном случае. А возможность вынесение части бизнес логики (кстати это присутствует и XLST что является не плохим плюсом) делает некоторые вещи более простыми что-ли (например подбитие суммы в колонках при выводи таблиц во время ее формирования). Еще одна позитивная сторона XLST - возможность трансформации на стороне клиента. В таком случае ресурсы экономятся отлично, но не все браузеры умеют делать трансформацию XML-ля. Алгоритм роботы просто, данные в XML, а XML на трансформацию XLST (шаблон). Или же 2 документа на пользователя.zg писал(а):а кто-нибудь XSLT юзает? пятый раз начинаю читать спецификацию XSLT и всё-равно нифига не понимаю...
P.S. в свое время писал свои шаблонизаторы, если базироваться суто на парсинге то есть проигрыш компилированы в РНР шаблонам.
-
- мл. сержант
- Сообщения: 93
- Зарегистрирован: 2008-04-07 8:59:20
Re: [PHP] Шаблоны
для самописных движков Smarty - лучшее решение, ИМХО.
и все это баян про его неповоротливость. при сегодняшних соотношениях цен на рабочие руки и более мощные железки Smarty рулит.
и все это баян про его неповоротливость. при сегодняшних соотношениях цен на рабочие руки и более мощные железки Smarty рулит.
я не баба, я - мужик...
(это чтоб никто не путал)
(это чтоб никто не путал)
- Volodymyr
- лейтенант
- Сообщения: 614
- Зарегистрирован: 2008-06-17 16:04:56
- Откуда: Ukraine, Lviv
- Контактная информация:
Re: [PHP] Шаблоны
А что есть не самописный движок?jeehadina писал(а):для самописных движков Smarty - лучшее решение
-
- мл. сержант
- Сообщения: 93
- Зарегистрирован: 2008-04-07 8:59:20
Re: [PHP] Шаблоны
я имел в виду веб-приложения? написанные без использования "вседелающих" фреймворков и CMS. (joomla, drupal, nuke, чего там еще.),Volodymyr писал(а):А что есть не самописный движок?jeehadina писал(а):для самописных движков Smarty - лучшее решение
где составлящие организующие взаимодействие с БД, кешем, шаблонами и т.д. писалось для конкретного проекта, либо собиралось из уже готовых решений.
я не баба, я - мужик...
(это чтоб никто не путал)
(это чтоб никто не путал)
-
- мл. сержант
- Сообщения: 93
- Зарегистрирован: 2008-04-07 8:59:20
Re: [PHP] Шаблоны
сорри, затупил.
Не самописный движок: joomla, nuke, dle, drupal
это имелось в виду

Не самописный движок: joomla, nuke, dle, drupal
это имелось в виду
я не баба, я - мужик...
(это чтоб никто не путал)
(это чтоб никто не путал)
- Volodymyr
- лейтенант
- Сообщения: 614
- Зарегистрирован: 2008-06-17 16:04:56
- Откуда: Ukraine, Lviv
- Контактная информация:
Re: [PHP] Шаблоны
А его пишут не такие же люди как мы? На самом деле это просто готовые поделки в основном солянка из таких же готовых вещей. Кстати в большинстве из них внутри можно обнаружить тот же смарти. Если не в чистом виде, то в виде концепта . Хотя последнее время идет в обычной поставке классов.jeehadina писал(а):Не самописный движок: joomla, nuke, dle, drupal