Статьи
Портфолио
Друзья
Контакты

Последние статьи

06.07.2010 Memcache и Zend: у Вас "падает" Memcache? 4 коммент.

06.07.2010 Collabtive - web-based project management software 2 коммент.

03.06.2010 Ускоряем ZF-проекты: автолоад и сборка в один файл 2 коммент.

Все

Категории

PHP 2 стат.

Zend Framework 25 стат.

Javascript 3 стат.

Другое 12 стат.

Книги 1 стат.

Украина 1 стат.

Все

RSS

Статьи

Комментарии

Портфолио

Облако тегов

программирование  Программы  портфолио  php  zend framework  Zend_Db  Smarty  Zend_Form  паттерны  javascript  niceforms  jQuery  Zend_Mail  веб  Google  Zend_Rest  Zend_View_Helper  zend casts  Zend_View  Zend_Layout  speedUp  интернет  Загрузчик фотографий  Flash  ВКонтакте  zend  localization  zend_translate  gettext  антон шевчук  подарки  Я читаю  Книги  sphinx  релизы 

Все

Реклама



Статистика



Rambler's Top100

Главная > Статьи > Zend Framework > Зачем нам шаблонизатор Smarty? Есть РНР!
23.09.08 Зачем нам шаблонизатор Smarty? Есть РНР!

Приступая к работе


 

Работая с Zend Framework, понимаеш, что нужно очень грамотно строить свои приложения, ведь, если честно сознаться этот фреймворк расходует немало ресурсов, поэтому нужно уметь оптимизировать и экономить. Очень много программистов, которые используют Zend Framework, нагружают его немелким довеском — Smarty. Именно о таком программировании пойдёт речь…

 

Приступим!


 

Работая над веб-сайтами, для разделения логики и представления я использовал шаблонизатор Smarty. Потом, когда дело дошло до разработки сложного и более крупного проекта, я понял, что Smarty меня больше не устраивает. Постоянно путаешся с закрытием конструкций Smarty и когда всё-таки вылетает ошибка неможеш найти место, где этот тег небыл закрыт. И не каждый дизайнер сможет работать со Smarty — приходится делать всё это самому. Надоело заключать каждую скобку Javascript'a в {literal}, надоело искать ошибки в огромном шаблоне с кучей условий и циклов!

 

Smarty Template EngineВдобавок ко всему прибавляем «вес» Смарти. Да, вы скажете, что в Смарти отлично реализована система кэширования, однако одна подгрузка библиотки Smarty.class.php с кучей инклудов и плагинов при каждой загрузке страницы занимает существенную часть времени от загрузки всей страницы.

 

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

 

Кроме того, синатаксис у PHP куда более приятный и удобный, нежели у Smarty. Скажете, что со Smarty гораздо удобнее работать верстальщикам? Да ничего подобного. Из личного опыта скажу, что в 90% случаев к программисту приходит сверстанный html-шаблон, который далее уже «прикручивает» сам программист. А если уж есть компетентные верстальщики, которые были способны брать всю view-логику на себя, то думаю им не составит труда вместо тех же {if} писать <?php if () {?>.

 

Но как только представляешь, как много ты выигрываешь по производительности, скорости разработки, скорости отладки и поиска ошибок — хочется выбросить Smarty навсегда и забыть о нем.



При этом используя Zend Framework, можно написать и своё кеширование, которое еще в несколько раз ускорит работу нашего приложения. Так зачем же изобретать велосипед?

 

Умелый программист таким образом грамотно разделит логику от представления, сделает механизмы кеширования и приложение будет просто «летать».

 

А используя короткие конструкции РНР, можно добится наглядности в Ваших шаблонах вида, хотя стандарты кодирования с помощью Zend Framework требуют использования полных, С-подобных конструкций РНР. Ну это совсем уж Ваше дело, главное что я Вас предупредил Подмигивает

Теги:  Smarty, zend framework, php, программирование

Другие категории:

■ PHP ■ Zend Framework ■ Javascript ■ Другое ■ Книги ■ Украина
Комментарии к статье
  Dune

23.10.08 05:26:34

Наболевшая тема в обсуждениях с руководством. Почему-то неправильно понимается суть шаблонов: это отделение логики приложения (бизнес логики) от логики отображения. Для этого прекрасно подходит php. Шаблон без php — это такой, где логики нет совсем. А смарти используется чтобы прятать php (своеобразная красота) и только. Объяснение что дизайнер не разберется в php глупо — дизайнеры в моей практике не могут верстать на должном уровне да и современная верстка достаточно сложна, что ей занимается человек разумный, узнать php для него не проблема.

  Suzy

18.11.08 09:59:52

Андрей, как я Вас понимаю… Эти вечные проблемы с синтаксисом… прослеживанием открытых, закрытых операторов… , а от вездесущих {literal} просто спасения нет… Мне как верстальщику, очень близки все проблемы, с которыми ви столкнулись… Должна признаться, ничего сверхудобного в одевании дизайна на код Smarty я не нашла и ничуть не жалею, что работаю чейчас с PHP. Действительно, если ты работаешь с версткой, то разобраться в коде не составляет никаких проблем...

  illusive

24.11.08 09:56:40

2Suzy:

Спасибо за понимание! Приходилось и мне верстать, а именно этот блог, то я Вам скажу это просто ужас. Вот новый движок уже не юзает Смарти, и с ним намного проще работать.

  Герц

28.03.09 09:10:18

Ох ерунда... Чистый php как шаблон будет давать столько синтаксического мусора, что все ваши беды с вездесущим {literal} не имеют веса. Пользую smarty, и доволен им. Есть недостатки, но при должной компетенции они также теряют значение :) Не нравится smarty -> есть достаточно иных шаблонизаторов со своим набором функций, каждый найдёт то что ему нужно :)

  Snowcore

22.05.09 13:47:08

Некоторые разработчики используют Smarty в своих проектах на Zend Framework - этого я вообще не понимаю! Профайлером замеряли производительность - так Smarty съедал от 60% до 80% времени работы приложения o_O (!)

  Halo

29.08.09 16:04:49

По необходимости писал делал шаблоны на Смарти. Но так как я сам больше предпочитаю программировать (а не верстать), то я не вижу смысла в нем.

Например WordPress, в нем шаблоны на php, и в этом нет ничего плохого и непонятного.

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

  illusive

03.10.09 10:58:19

Для кеширования мы будем юзать Zend Framework, для разных вспомогательных функций помощники вида Zend_View. Чем Вам не Смарти? Улыбается

  Александр

28.12.09 03:09:55

Это полный бред насчет smarty. ZF это просто сборник классов и конструкторов. также ZF включает в себя поддержку smarty и абсолютно не является ядром. И почемубы это ZF вдруг поддерживает smarty, если он так крут как вы пишете? как ни крути а для нормально организованой структуры сайта с нормальными шаблонами не достаточно одного ZF. И вообще смысла в нем нет, так как нес смысла писать груды конструкторов, и всеравно  верстальщик должен знать PHP. И не просто основы, а OOP. Так что не несите чуш. Smarty является единой и неповторимой вещью для разделения php/html, пусть даже с { } но это гораздо удобнее чем искать пропущенную запятую, $ ; или еще какую ерунду. И в плане оптимизации быстродействия ZF никак не выигрывает!!! Так что не несте чуш!

  Александр

28.12.09 03:13:17

Даже при отправке комментария я заметил 2х секундную паузу  Клёвый на вашем блоге. Что такое?? ZF это жн почти C++ ?? Где ваше быстродействие

  Snowcore

28.12.09 07:51:38

По поводу комментария Александра на ум приходит только одно:

"Я думал, намного будет... Намного лучше будет это все. И очень плохой фреймворк, просто очень плохой фреймворк! Я думал, намного лучше это все будет. Сколько раз сюда ходииил — было намного лучше, но на этот раз как-то не удалось. Во-первых, народа мало, фреймворк — не очень..."

Подмигивает

  illusive

28.12.09 09:32:41

@Александр
Задержка при комментировании существует, поскольку на ящики отправляются уведомления о новых комментариях.

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

@Snowcore 
Подмигивает

  Александр

28.12.09 18:54:09

Смеётся Вы глубоко заблуждаетесь. Разве легче писать конструктор для получения данных из базы, чем просто написать mysql_qyery('SELECT something FROM table WHERE statement'). Также груда длинных переменных, названий функций и т.д. Что это упрощает разработку? Вы проведите обзор СМС на базе ZF и увидите что у них разная структура каталогов, похожие конструкторы имеют разные имена,  у одних xml у других ini  в качестве конфигов. Где тот общий принцип программирования ради которого и появился на свет ZF. Я согласен что это дело вкуса, но уникальное и быстрое ПО на ZF строить я бы нерекомендовал. Если вспомните архитектуру CPU то увидите что самые динные операции это операции прыжков (jump), операции вызовов (call), в php это require, include, require_once, eval,  всевозможные вызовы пользовательских функций, тем более внутри классов. Этим более чем достаточно насыщен ZF. Да для маленьких сайтов может ZF и отличное решение, но для больших порталов, для сложной иерархии каталогов, со сложными БД, если сайт хорошо продвигается и идет тенденция роста трафика  ZF не взлетает.

  Snowcore

28.12.09 19:06:14

@Александр:

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

В данный момент на базе ZF разрабатываем тоже достаточно серъезный проект.

То, что вы говорите - извиняюсь за выражение, полная ерунда

  Александр

28.12.09 19:14:01

Высоконагруженную социальную сеть? хехе

  Snowcore

28.12.09 19:21:07

А что смешного?

Кроме этой социальной сети у заказчика было еще несколько популярных проектов на ZF. Один из них - извесный новостной сайт с посещаемостью 15000 уников в сутки.

  Александр

28.12.09 19:25:21

Уж сильно вы любите Zend

  Snowcore

28.12.09 19:28:00

А за что его не любить? Я на практике просто знаю, что разработка на основе ZF - отличная штука!

  Snowcore

28.12.09 19:38:02

Александр, а можно у вас поинтересоваться на чем вы сайты разрабатываете?

  Александр

28.12.09 20:09:33

Свой код+Smarty, но в основном я разработчик сервисного ПО, там где бесполезно все.

Оставить свой комментарий

 
Статьи | Портфолио | Друзья | Контакты
Идея и мозги: Васильев Андрей © 2008-2010 Web-Blog Кисточка и фантазия: Зелинский Богдан