[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Шаблонизаторы
olgatcpip
Я сама работала с 3мя шаблонизаторами. Но хочется тут создать сравнительную характеристику всех нам знакомых шаблонизаторов. Я, конечно, глдянула статьи типа этой http://tinybutstrong.ru/dopolnitelno/obzor_shablonizatorov/ Но меня не интересует то, что пишут разработчики в документации, меня интересуют впечатления от них.

1 - Twig Это первый в моей жизни шаблонизатор. Много чего в нем есть, но вникать, лично мне, было туго.

2 - Smarty Самый простой для меня. И посему любимый. Правда он тяжёленький, но удобство прежде всего. Это мой выбор

3 - mustache Самый легкий из известных мне, но такой тупой. Не удобный И комментарии не корректно рботают. Например, из последнего, что меня взбесило:
Цитата
{{! бла-бла {{#q}} }}
Будет косяк

Ребята, а с какими шаблонизаторами вы работали? Может Кто Наоборот любит мусташ И готов терпеть его косяки,за его легкость.
Знаю, что twig и smarty не уступают друг другу. Но личное впечателение хочу услышать от вас.




Спустя 17 минут, 39 секунд (4.09.2012 - 12:43) dron4ik написал(а):
Zend_View

Спустя 2 минуты, 47 секунд (4.09.2012 - 12:46) olgatcpip написал(а):
dron4ik
ты работал с ним? Как? легко, или чего бы получше?

Спустя 35 секунд (4.09.2012 - 12:47) olgatcpip написал(а):
И ссылку бы на его документацию.

Спустя 4 минуты, 22 секунды (4.09.2012 - 12:51) sharki написал(а):
olgatcpip
Твиг давно уже стал достаточно крутым шаблонизатором, оставайся на нем, научись расширять стандартные классы, и будет тебе счастье smile.gif

Спустя 12 минут, 44 секунды (4.09.2012 - 13:04) johniek_comp написал(а):
olgatcpip
для того что бы юзать твиг, нужно изначально хорошую структуру сайта, мой совет, бери symfony, там он сразу идет!

Спустя 4 минуты, 41 секунда (4.09.2012 - 13:08) dron4ik написал(а):
olgatcpip
Можно встречный вопрос? Зачем нужны шаблонизаторы???
Почему нельзя нативный шаблонизатор использовать?

Спустя 24 минуты, 18 секунд (4.09.2012 - 13:33) Dezigo написал(а):
symfony2/twig
Twig великолепен, советую его использовать.

Спустя 10 минут, 9 секунд (4.09.2012 - 13:43) olgatcpip написал(а):
Цитата
Почему нельзя нативный шаблонизатор использовать?

всмысле писать везде <?php echo "1212121" ?>
Не.. мне не нравится.

Спустя 10 минут, 45 секунд (4.09.2012 - 13:54) Hello написал(а):
Цитата (olgatcpip @ 4.09.2012 - 14:43)
Цитата
Почему нельзя нативный шаблонизатор использовать?

всмысле писать везде <?php echo "1212121" ?>
Не.. мне не нравится.

А так?
<?="1212121"?>

Спустя 15 минут, 8 секунд (4.09.2012 - 14:09) pak написал(а):
Hello
а условия, циклы?

Спустя 51 минута, 44 секунды (4.09.2012 - 15:00) dron4ik написал(а):
Цитата (pak @ 4.09.2012 - 12:09)
Hello
а условия, циклы?

завернуть в функцию!
<?=for() ?>

Спустя 9 минут, 35 секунд (4.09.2012 - 15:10) killer8080 написал(а):
Цитата (pak @ 4.09.2012 - 15:09)
Hello
а условия, циклы?


И чем же условия и циклы псевдо-языков лучше нативного синтаксиса?

Спустя 33 минуты, 17 секунд (4.09.2012 - 15:43) Семён написал(а):
Соглашусь, обойснуйте чем лучше шаблонизатор подобной конструкции из натива:

Натив:
<? foreach($array as $value): ?>
<?=
$value;?>
<?
endforeach; ?>


Smarty
{foreach from=$array item=value}
{
$value}
{
/foreach}


Twig (подправьте, давно с ним не работал)
{% for key, value in data %}
{{
value }}
{
% endfor %}

Спустя 4 минуты, 46 секунд (4.09.2012 - 15:48) pak написал(а):
я ни чего против не имею, на вкус и цвет товарища нет.

Спустя 1 час, 40 минут, 17 секунд (4.09.2012 - 17:28) Invis1ble написал(а):
Я сколько не просил адептов шаблонизаторов обосновать свой выбор, никогда не получал внятного ответа с объективными аргументами.

Спустя 33 минуты, 24 секунды (4.09.2012 - 18:02) olgatcpip написал(а):
Лично я вижу кульность шаблонизатора в том, что я могу верстальщику ддоступ только и строго к папке с шаблонами. php код они обычно боятся, а простые операции в твиге или смарти понимают легко smile.gif

Спустя 36 минут, 44 секунды (4.09.2012 - 18:38) Hello написал(а):
Цитата (Семён @ 4.09.2012 - 16:43)
Соглашусь, обойснуйте чем лучше шаблонизатор подобной конструкции из натива:

Натив:
<? foreach($array as $value): ?>
<?=
$value;?>
<?
endforeach; ?>


Smarty
{foreach from=$array item=value}
    {
$value}
{
/foreach}


Twig (подправьте, давно с ним не работал)
{% for key, value in data %}
  {{
value }}
{
% endfor %}

Подойду с друго стороны, напишите на php цикл foreach, который будет выводить с 5 по 10 элемент массива
На Twig это
{% for value in array[5:10] %}
{{
value}}
{
% endfor %}

Спустя 11 минут, 25 секунд (4.09.2012 - 18:50) Invis1ble написал(а):
Цитата
Подойду с друго стороны, напишите на php цикл foreach, который будет выводить с 5 по 10 элемент массива

<?php foreach (array_slice($array, 5, 5) as $value) : ?>
<?php
echo $value ?>
<?php
endforeach ?>




Спустя 1 минута, 24 секунды Invis1ble написал(а):
Цитата
php код они обычно боятся, а простые операции в твиге или смарти понимают легко

это проблемы верстальщиков, а не достоинство шаблонизаторов

Спустя 43 минуты, 1 секунда (4.09.2012 - 19:33) Семён написал(а):
Invis1ble
cool.gif cool.gif cool.gif cool.gif cool.gif
-----
Единственный плюс шаблонизатора - изоляция от исполнения стороннего кода в шаблонах, ниразу не видел дизайнера который работает строго только с фтп доступом к папке с шаблонами biggrin.gif

Спустя 3 часа, 35 минут, 32 секунды (4.09.2012 - 23:08) Dezigo написал(а):
Описание почему twig, хотя и нативный php шаблонизатор на вид тоже неплох.
Why Twig?
Twig templates are meant to be simple and won't process PHP tags.

This is by design: the Twig template system is meant to express presentation, not program logic.

The more you use Twig, the more you'll appreciate and benefit from this distinction. And of course, you'll be loved by web designers everywhere.

Twig can also do things that PHP can't, such as whitespace control, sandboxing, and the inclusion of custom functions and filters that only affect templates.

Twig contains little features that make writing templates easier and more concise. Take the following example, which combines a loop with a logical if statement:

<ul>
{% for user in users %}
<li>{{ user.username }}</li>
{% else %}
<li>No users found</li>
{% endfor %}
</ul>


Спустя 19 минут, 15 секунд (4.09.2012 - 23:28) Семён написал(а):
Dezigo
Цитата
Единственный плюс шаблонизатора - изоляция от исполнения стороннего кода в шаблонах, ниразу не видел дизайнера который работает строго только с фтп доступом к папке с шаблонами


Хотелось бы добавить ниразу не видел верстальщика который знает Twig/Smarty но не знает при этом PHP biggrin.gif

Спустя 4 минуты, 51 секунда (4.09.2012 - 23:32) Invis1ble написал(а):
Цитата
Twig can also do things that PHP can't, such as whitespace control, sandboxing

что подразумевается под песочницей?

Спустя 1 час, 57 минут, 33 секунды (5.09.2012 - 01:30) bodja написал(а):
ИМХО дурь все это.
Тупиковая технология , у которой нет будущего.
Сам ПХП крайне тупо работает с ХТМЛ и это при его функционале, а что уже говорить функционале шаблонизатора тогда?
Любые надстройки приводят и к простоте и ограничению возможностей.Насколько проще, настолько и ограниченей.

Спустя 8 часов, 18 минут, 55 секунд (5.09.2012 - 09:49) killer8080 написал(а):
Цитата (olgatcpip @ 4.09.2012 - 19:02)
php код они обычно боятся, а простые операции в твиге или смарти понимают легко

Операции в шаблонизаторах ничем ни проще аналогичных в PHP.
PHP сам по себе интерпретируемый язык, что ему быстродействия не добавляет, запихивать искусственный интерпретатор внутрь другого интерпретатора, это полный изврат, и ничем неоправданный расход ресурсов.

Спустя 11 минут, 43 секунды (5.09.2012 - 10:01) Oyeme написал(а):
Javascript template ejs wink.gif Неплохой.
http://embeddedjs.com/

Всегда найдутся люди ,которые будут уверять всех в своей правоте.

До сих пор есть такие люди которые убеждают всех ,что чистый javascript быстрее все сторонних библиотек,и что это ужасно.

Мой совет,изучайте как можно больше изнутри библиотек,template systems,frameworks итд.

Может спустя время ,Вы представите миру лучшее из всех. wink.gif

Спустя 40 минут, 10 секунд (5.09.2012 - 10:41) Семён написал(а):
Цитата
До сих пор есть такие люди которые убеждают всех


Есть такие люди, кто не аргументированно нахваливает продукт smile.gif
Сравнивать чистый JS с Jquery, это помоему крайне глупо, хотя бы потомучто Jquery лишь обертка языка и сокращает написание кода, в то время как шаблонизатор ничего не упрощает и только плодит в проекте дополнительный пседо-язык.

Спустя 21 минута, 14 секунд (5.09.2012 - 11:02) olgatcpip написал(а):
Ну.. читабельность повышает. Я в основном использую вставку блока (html Куска)
На php - это была бы функция, которая внутри себя собирает строку html либо возвращает строку.

И подсветка кода отсутсвует. В выражении типа есно '<div>qwert</div>';
А писать бесконечные <?php ?> только дизориентирует.

Скорость разработки лично у меня увеличился во много раз. Потому что я меняю чисто шалбон, а не напрягаяю свои глаза, внимательно разглядывая в php html

Спустя 58 минут, 19 секунд (5.09.2012 - 12:00) bodja написал(а):
Oyeme

Цитата
Javascript template ejs  Неплохой.


Ну это вообще абзац полный,
про DOM что вообще забыли и запили холодной водой ? biggrin.gif biggrin.gif biggrin.gif

olgatcpip
Такие вещи хороши в крайне простых вещах.
Как только шаблон выйдет за рамки "статья+коменты" с него полетят перья.
Спору нет ,когда дело поставлено на поток и капает денежка со всего этого.
Но развития не будет, так и пойдем на пенсию втыкая статьи+комменты.

Спустя 38 минут, 44 секунды (5.09.2012 - 12:39) Oyeme написал(а):
bodja
В любом случаи всё хранится в DOM.

Весь HTML на сайте ЭТО и есть один сплошной DOM.
http://en.wikipedia.org/wiki/Document_Object_Model

Цитата
When an HTML page is rendered in a browser, the browser parses the markup (e.g. HTML), downloaded from the web-server into an in-memory DOM



Не вижу смысла спорить,и доказывать что-то.
Если Вы не понимаете для чего это нужно. wink.gif


Автор темы попросил посоветовать ему.
Остальное я считаю неуместным.

Спустя 17 минут, 28 секунд (5.09.2012 - 12:57) bodja написал(а):
Oyeme

Я прекрасно знаю для чего это нужно,
более того и я это делал.
Делал на корявенких функциях ,вставляя в JS куски бредового ХТМЛ,пыхтя и шкребя зубами,
я все таки добился разделения шаблона и кода,и загружался он меня отдельно от ПХП и разворачивался и подхвавался с переходом на полный аякс с подгрузкой контента и флеш роликов.Причем шаблон был "чистый" без всяких вставок для шаблонизатора.
Все это проехали wink.gif
Не нужно знать DOM ,его нужно понимать.

Спустя 7 минут, 12 секунд (5.09.2012 - 13:04) olgatcpip написал(а):
Цитата
Как только шаблон выйдет за рамки "статья+коменты" с него полетят перья.

bodja
У меня своя платформа, тама сейчас всё за рамками smile.gif

Спустя 15 минут, 3 секунды (5.09.2012 - 13:19) bodja написал(а):
olgatcpip
К сожалению у меня нет своей платформы ,так как каждая следующая работа ,становится лучше предыдущей.
Нет у меня уже и шаблонов и поэтому и шаблонизатор мне не нужен.
Это я тут так... Просто воду покаламутил. biggrin.gif
Если остановлюсь ,покажу к чему пришел, тогда и перехлестнемся философиями кода. rolleyes.gif

Спустя 13 минут, 33 секунды (5.09.2012 - 13:32) dron4ik написал(а):
верстальщик прислал...

Кусок
echo " <div class=\"i wrap\">\r\n \t<a name=\"";
echo $post->post_name;
echo "\">&nbsp;</a>\r\n <div class=\"descr\">\r\n <div class=\"date\">";
echo the_time( "j F, Y | H:i" );
echo "</div>\r\n <h1>";
echo '<a href="';
echo permalink();
echo $eventLink.'">';
the_title( );
echo '</a>';
echo "</h1>\r\n <div class=\"txt\">";
echo stripcontent( $content, max( round( ( $imgData[2] - 60 ) / 14 * 55 ), 500 ) );
echo "</div>\r\n </div>\r\n \r\n <div class=\"img\">\r\n \t";
if ( $img )
{

echo '<a href="';
echo permalink();
echo $eventLink.'" title="';
the_title( );
echo '">';

echo " \t<img src=\"";
echo $img;
echo "\" alt=\"";
the_title( );
echo "\" />\r\n\t\t\t\t";

echo '</a>';

}

Спустя 12 минут, 31 секунда (5.09.2012 - 13:45) olgatcpip написал(а):
dron4ik
Ну вот. Как раз пример того, что html код в php неразборчив. Править такое очень сложно.
А если красиво всё выделять в функции и отрывать html от php Даже если и html в php будет через
Цитата
?>
html код
?>

то это явное стремление к шаблонизатору. И я вот так слегкостью в свои проекты.. да и вообще не могу прикинуть структуру проекта (иерархию скриптов) чтоб легко этим можно было воспользоваться..


кхм.. Надо было вначале, в первом посте написать, что я тему подняла, только чтоб узнать новые шаблонизаторы и впечатления от работы с ними, услышать от кого-то ещё, что мусташ отстой и не удобный

Спустя 9 минут, 6 секунд (5.09.2012 - 13:54) Игорь_Vasinsky написал(а):
у php есть альтернативный синтаксис

<?php if(!isset($_GET['act'])) :?>

<form action="/index.php" method="GET">

<
input type="hidden" name="route" value="page"/>
<
input type="hidden" name="page" value="forgot"/>
<
input value="email" name="email" type="text" class="find"/><br />
<
input class="subscr2" value="Восстановить" type="submit" name="recover"/>

</
form>

<?php else:?>

<?
if($error == null OR isset($flag)) :?>

<form action="" method="POST">

<
table>
<
tr>
<
td style="font-family:arial; font-size:12px">Новый пароль:</td>
<
td><input type="password" name="pass"/></td>
</
tr>
<
tr>
<
td style="font-family:arial; font-size:12px">Ещё раз</td>
<
td><input type="password" name="pass2"/></td>
</
tr>
<
tr>
<
td colspan="2" align="right"><input class="subscr2" value="Записать" type="submit" name="save"/></td>
</
tr>
</
table>
<
input type="hidden" name="email" value="<?=$email;?>">

</
form>

<?php endif;?>

<?php
endif;?>

Спустя 16 минут, 15 секунд (5.09.2012 - 14:10) dron4ik написал(а):
olgatcpip
показал я к тому, что верстальщик должен знать синтаксис php если уж решил верстать сайты)


Спустя 9 минут, 19 секунд (5.09.2012 - 14:20) Игорь_Vasinsky написал(а):
это ужс ph34r.gif

Спустя 1 час, 11 минут, 30 секунд (5.09.2012 - 15:31) killer8080 написал(а):
Цитата (olgatcpip @ 5.09.2012 - 14:45)
dron4ik
Ну вот. Как раз пример того, что html код в php неразборчив. Править такое очень сложно.

Да нет, это пример слабоумия верстальщика biggrin.gif
Возможно я открою секрет, PHP изначально и есть шаблонизатор smile.gif

Спустя 7 минут, 20 секунд (5.09.2012 - 15:38) Rand написал(а):
Цитата (dron4ik @ 5.09.2012 - 17:32)
верстальщик прислал...

Я как-то натыкался на чудо конвертер html to php. Так вот он также тупо каждую строчку превращал в echo biggrin.gif.

По теме - я за PHP. Я бы предоставлял Twig пользователям, будь у меня какой-нибудь свой ucoz. Другого применения пока не вижу.
Также считаю, что профессиональный PHP-программист не должен создавать продукт под узкопрофильных верстальщиков, которые знают smarty и не знают основ php. Кто виноват, что они потратили время на изучение тегов smarty, а не операторов php? А виноваты PHP программисты, которые посчитали, что верстальщику понять smarty легче. Не держите верстальщиков за даунов - они прекрасно разберутся в php, если это будет диктовать рынок.

Спустя 21 минута, 45 секунд (5.09.2012 - 16:00) dron4ik написал(а):
Цитата (killer8080 @ 5.09.2012 - 13:31)
Цитата (olgatcpip @ 5.09.2012 - 14:45)
dron4ik
Ну вот. Как раз пример того, что html код в php неразборчив. Править такое очень сложно.

Да нет, это пример слабоумия верстальщика biggrin.gif
Возможно я открою секрет, PHP изначально и есть шаблонизатор smile.gif

тссс... на меня до сих пор за такие слова обижаются!))) (PHP изначально и есть шаблонизатор)


_____________
Ласковое слово и кошке приятно... Плюсик в карму сойдет wink.gif
*smarty дока - новая любовь
Моё рукотворение ругайте, хвалите smile.gif
Веду маленький блог
в этом блоге публикую новые работы
WMR217126627282 wink.gif

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.