LINUX.ORG.RU

Symfony, Zend Framework или Smarty


0

1

Добрый вечер. Решил попробовать для рефакторинга PHP-спагетти кода (весь сайт - сплошное убожество) Zend Frawework. До этого немного использовал Smarty, но в основном Django, весьма понравились. Но когда поразбирался с ZF, понял, что там нет шаблонов как в Django.

В связи с этим вопросы: 1) зачем тогда нужен ZF? 2) есть ли шаблоны, аналогичные Django/Smarty в Symfony? В других фрейворках? 3) а может быть нафига нужны в этом случае фреймворки и просто использовать Smarty? У меня цейтнот - за минимальное время нужно отделить HTML от PHP.

Главнюк говорит, что в ZF шаблоны не нужны, но когда я посмотрел на код - я тихо ужаснулся от обилия <?=?> и прочего

Я хочу писать

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

вместо

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

А читать

{if $a}{else}{/if} 

лично мне гораздо проще чем

<?php if($a){?><?php }else{ ?><?php} ?>

спасибо за внимание.

вроде бы к ZF можно прикрутить Smarty. сам не пробовал.

1) зачем тогда нужен ZF?

а вобще-то он не ради шаблонов нужен. сравнил 27 метров классов зенда на все случаи жизни с каким-то шаблонизатором несчастным.

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

мне нужен шаблонизатор.

ZF значит - это просто библиотека классов?

я привык просто к Django - там и библиотека классов и шаблоны.

djenterprise
() автор топика

Прочитал A Gentle Introduction to symfony

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

Кстати по поводу Smarty - какую версию все таки использовать 2.х или 3.х?

djenterprise
() автор топика

В Symfony не рекомендуется использовать всякие smarty, в зенде я бы тоже не рекомендовал, говнокода увеличится и он весь перетечет в контроллер.

FractaIL
()
<?php if($a){?><?php }else{ ?><?php} ?>
<? if($a): ?>
<? else: ?>
<? endif; ?>
FractaIL
()
Ответ на: комментарий от FractaIL

т.е. в ZF и Smarty ВООБЩЕ не принято использовать шаблонизаторы?

спасибо, тогда нафиг они мне тогда нужны.

djenterprise
() автор топика

В Symphony есть шаблонизатор. Кстати, 2-ю версию осталось ждать всего-ничего.

drakmail ★★★★
()

>Symfony, Zend Framework или Smarty

Вопрос из категории «Ноутбук, набор комплектующих для ПК или видеокарту»

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

>Сам не пользовался, но слышал, что есть http://www.twig-project.org/

Там, по-моему, до сих пор не решили адекватно проблему цепных обращений к методам объектов.

KRoN73 ★★★★★
()

PHPTAL. Прикручивается к любым фреймворкам. В частности для ZF есть Ztal с поддержкой Zend'овских форм и i18n.

BobiKK
()
Ответ на: комментарий от AlexKiriukha

Мы в нашем проекте прикрутили twig к zend framework. Особых преимуществ по сравнению с встроенным зендовым шаблонизатором не нашли (ну разве что кроме наследования шаблонов), зато отрабатывает медленнее (поскольку прикручивание твига происходит путем подмены класса Zend_View, внутри которого инициализируется класс шаблонизатора, то есть как бы еще один слой получается), ощутимо так увеличилось кол-во сжираемой памяти, и еще очень показательна ошибка «Fatal error: Maximum function nesting level of '50' reached, aborting!» при рендеринге (происходит при включенном xdebug'e, лечится настройкой xdebug.max_nesting_level, но сам факт - какой там огромный стек вызовов получается - как бы говорит сам за себя. На боевой системе xdebug'a не будет, но большой стек вызовов никуда не денется).

Вообще никакие шаблонизаторы в mvc-фреймворках, в частности, ZF, не нужны. В том плане, что преимущества сомнительны, а недостатки очевидны (описаны выше). В ZF и так уже есть и шаблоны, и лэйауты. Что, верстальщику трудно осилить пхп? Когда создается новый шаблонизатор, его разработчик говорит: «пхп слишком сложен и громоздок, а мой шаблонизатор содержит только то, что надо». Но потом оказывается, что надо бы еще и то, и это, и вот через пару лет язык шаблонизатора разрастается настолько, что уже требует дополнительного углубленного изучения.

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

Наверное это так и есть. Человек пишет на php и ему понравилась идея наследования шаблонов. Он как-то нашёл это и скинул мне ссылку. Не думал, что оно такое сырое.

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

>Что, верстальщику трудно осилить пхп?

Это если верстальщика можно до PHP допустить :)

...

А, вообще, шаблонизаторы — это типичный случай размены производительности на удобство и скорость разработки. Иногда — совсем неощутимая потеря скорости и очень приличный выигрыш в скорости разработки. Кому не нравится — пусть пишет в машинных кодах :)

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

[quote]Вообще никакие шаблонизаторы в mvc-фреймворках не нужны[/quote]

программисты Django с вами в корне не согласны

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

джанго - это который питон? пока там выделение блоков кода будет делаться табом, про него как про язык программирования предпочитаю не говорить. (troll-mode off)
еещ раз отмечу, что конкретно в ZF уже встроен шаблонизатор, и говорил я про то, что там не нужен никакой другой, поскольку это только пустая трата вычислительных ресурсов.

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