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

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

15.10.2011 Zend Framework Day 2011, 12 ноября, Киев (0)

27.09.2011 MSSQL, XML и PHP. Как заставить это работать из под *nix? (0)

22.06.2011 Zend Framework, MSSQL и UTF-8 - проблемы с кодировками (5)

Все

Категории

PHP (2)

Zend Framework (32)

Javascript (4)

Другое (13)

Книги (1)

Все

RSS

Статьи

Комментарии

Портфолио

Облако тегов

программирование  open search  портфолио  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  софт  массовые рассылки  хранение данных 

Все

Статистика



Особенности матовой матрицы для ноутбуков низкие цены.
На сайте можно быстро пополнить счет life
SITEovnet seo продвижение сайтов киев оптимизация.

Главная > Статьи > 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, но в основном я разработчик сервисного ПО, там где бесполезно все.

  Алексей

10.09.10 06:47:39

Александр вы троль!

  Михаил

27.09.11 09:36:43

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

27.09.11 12:44:33

Каждому свое, Михаил

  Никита

17.11.11 15:12:30

и нафига каждую скобку заключать в литерал если можно весь скрипт сразу?

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

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