LINUX.ORG.RU

Symfony + Smarty


0

0

Добрый вечер. Решил попробовать для новой разработки symfony. До этого немного использовал Smarty, весьма понравился. Но когда поразбирался с фреймворком, понял, что там нет шаблонов. Поискава, нашел вот это - http://trac.symfony-project.com/trac/wiki/sfSmartyViewPlugin. Кто-нибудь использовал? Насколько это работоспособно?

★★★★★

Ответ на: комментарий от barbuza

Или проще забить на шаблоны и писать так, как это предполагает Symfony? (т.е. так, как это описано в документации?)

roy ★★★★★
() автор топика
Ответ на: комментарий от barbuza

>лучше не брать смарти ибо убо уродство

И что в нём не нравится? Пишу на нём уже года три, не считая только того, что его можно раз в пять..семь ускорить за счёт замен substr() на preg_match() (что проделано), никаких нареканий, одно удовольствие :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

+1.

> замен substr() на preg_match()

актуально только при первой обработке шаблона. Дальше он может создавать "скомпилированный шаблон" и формировать html со скоростью сравнимой с выводом через echo :-)

r_asian ★☆☆
()
Ответ на: комментарий от r_asian

А что на счет моего вопроса? Просто фреймворк еще не использовал и не знаю, то ли это, что мне надо. По описанию жутко удобная вещь, да и смесь HTMK и PHP там сводится к минимуму, так что может шаблоны и не нужны сильно ?

roy ★★★★★
() автор топика
Ответ на: комментарий от roy

> По описанию жутко удобная вещь, да и смесь HTMK и PHP там сводится к минимуму, так что может шаблоны и не нужны сильно ?

Да в общем-то если работаешь над проектом один, то не нужны. По идее если смесь HTML и PHP локализуются в отдельных файлах и из php используются только циклы, условия и вывод(а данные для вывода добываются) - то это в общем то и есть шаблоны ...

Чем хорош Smarty для именно для нас - так тем, что позволяет отделить код скриптов от тех людей, которые должны заниматься HTML-версткой, но постоянно наровят "покодить".

r_asian ★☆☆
()
Ответ на: комментарий от r_asian

>актуально только при первой обработке шаблона.

Хренатам. Шаблоны же не на голом PHP, а с вызовами Smarty-методов. Вот они и тормозят. "Проверено профайлингом" :)

Наворочанный статический шаблон с десятком-других инклудов, циклами, обращениями к данным объектов обрабатывается 5..10 секунд. После указанных правок - около секунды. Ну и плюс статический html-кеш потом :D

KRoN73 ★★★★★
()
Ответ на: комментарий от r_asian

>Да в общем-то если работаешь над проектом один, то не нужны.

Нужны. Каша дизайна и кода даже при работе "в одно рыло" через полгода способна отнять массу лишнего времени.

Собственно, когда-то и я использовал "натуральный шаблонизатор" - PHP для этой цели.

Но сейчас - всё строго. Код - отдельно, данные - отдельно, шаблоны - отдельно...

KRoN73 ★★★★★
()
Ответ на: комментарий от Chapaev

PHP в виде шаблонизатора очень громоздкий и неудобный. Много лишней писанины. Предпочитаю писать

{if $topic.name}$topic.name{else}Безымянный{/if}

вместо

<?php if($template_data['topic']['name']) ? $template_data['topic']['name'] : "Безымянный"?>

А если там ещё и разметка начинает вмешиваться - иной раз полные кранты.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Это все решается четким разделением данных и вида:

==================================
data.php
/*******Получение данных********/

function a(){}

function b(){}

function c(){}


$a=a();
$b=b();
$c=c();

include(template.php);
================================


========================================
template.php
/**********Шаблонизация**********/

<?php if($a){?>
    <h1><?php echo $b;?></h1>
<?php }else{ ?>
    <h2><?php echo $c;?></h2>
<?php} ?>
=========================================


В этом случае конструкция 
{if $a}{else}{/if} 
приобретает вид
<?php if($a){?><?php }else{ ?><?php} ?>

Идеологически же ничего не меняется...



r_asian ★☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.