Powered by CodeIgniter

Новости

(17)
22
30 голосов

Smarty против Quicky

Приветствую вас, друзья. На выходных удалось поработать над вопросом шаблонизатора.
При замене Quicky на Smarty было замечено небольшое падение производительности (загрузка главной страницы дистрибутива была 0.18, стала 0.26 — в среднем). Тщательно изучив вопрос шаблонизации в PHP-приложениях пришел к следующим выводам:
  • В данной версии движка шаблонизатором остается Quicky. Переходить на Smarty смысла нет, даже несмотря на не задокументированный код Quicky (оставим это на совести автора).
  • PHP-native это очень здорово в плане производительности и понятно программисту, но не пользователю. Многих верстальщиков/дизайнеров отпугивает код в шаблонах.
  • Оптимальный способ шаблонизации — блочные шаблоны, обладающие минимальными логическими возможностями (например, проверка переменной на существование). Они работают практически также быстро, как PHP-native, в то же время обладая ясностью кода для пользователя.
Следующими этапами оптимизации станут: усовершенствование системы кеша (включая кеширование во всех компонентах) и создание инсталлера для страждущих.
22:51 ← 28 июня 2009 Отправить в Твиттер adminadmin  RSS comments 34

Комментарии (34) ↓

JiLiZART JiLiZART time 23:08 ← 28 июня 2009 #
А как же вопрос с формами в квики?, я понимаю что на продакшене всё должно работать норм, но как тогда разрабатывать сайт на локале?
Автор
admin admin time 00:40 ← 29 июня 2009 #
Завтра протестирую на виндовом XAMPP.
omgiafs omgiafs time 07:09 ← 29 июня 2009 #
Если все получится — будьте любезны, огласите настройки.
Fr3nzy Fr3nzy time 07:39 ← 29 июня 2009 #
Говорил ведь… :P
Fr3nzy Fr3nzy time 08:12 ← 29 июня 2009 #
Да, кстати, есть вероятность того, что вы можете связаться с мэйнтейнером Quicky на хабре :)
skachko skachko time 09:37 ← 29 июня 2009 #
А чем плох встроенный «шаблонизатор» CI? Который через parse(). Переменные вида <?=$val?> в шаблонах меняются на {val} с его использованием. Падения скорости загрузки страницы практически нет. Конструкции вида
{list}
{list_item}…
{/list}
также доступны.
Автор
admin admin time 10:26 ← 29 июня 2009 #
Он хорош, но поскольку изначально использовался Quicky, обладающий много более широкими логическими возможностями, то переход на встроенный шаблонизатор CI означает переделывание доброй половины проделанной работы.
skachko skachko time 12:09 ← 29 июня 2009 #
Тогда лучше вообще не трогать ничего. Смарти — жуткий тормоз! Если бы не кэширование… ))
Автор
admin admin time 12:57 ← 29 июня 2009 #
Не кеширование, а компилирование, скорее всего. Кеширование шаблонов на сайтах с динамическим контентом — смерти подобно.
Smarty лишь немногим медленнее Quicky.
JiLiZART JiLiZART time 15:35 ← 29 июня 2009 #
Так что там насчёт XAMPP? ыы =)
Fr3nzy Fr3nzy time 15:37 ← 29 июня 2009 #
Неужели даже в лог ничего не пишет ни апач, ни пхпы?
JiLiZART JiLiZART time 15:39 ← 29 июня 2009 #
Обсалютно ничего, ошибка видно вызывается либо в PHP интерпретаторе либо в модуле Apache которая вообще ничем не документируется. Т.к наверное к роду ошибок не относится, просто Apache думает что php скрипт не доступен и сбрасывает соединение
Автор
admin admin time 15:41 ← 29 июня 2009 #
Абсолют ;-)
JiLiZART JiLiZART time 15:46 ← 29 июня 2009 #
**** и ещё +1 символ
Автор
admin admin time 16:34 ← 29 июня 2009 #
Давайте обойдемся без подобных выражений на этом сайте.
Fr3nzy Fr3nzy time 15:46 ← 29 июня 2009 #
Тогда я бы на вашем месте просто стал удалять куски кода, пока не нашел бы проблемное место :)
Плюс попытался бы поставить не XAMPP, например, а AppServ и посмотреть как в нем будет.
Ну да ладно, @admin уже поставил себе ;)
JiLiZART JiLiZART time 15:47 ← 29 июня 2009 #
Проблема давно найдена, как ни странно вызывается из-за form.tpl файла, меняем его содержимое на что угодно и всё работает =)
Fr3nzy Fr3nzy time 15:56 ← 29 июня 2009 #
А что конкретно в нем не пытались искать?
ЗЫ. Про форм.тпл я уже читал :)
JiLiZART JiLiZART time 15:58 ← 29 июня 2009 #
К примеру? Логическую ошибку из-за которой падает Квики? или Синтаксические ошибки? Или ошибки с экранированием Javascript'a?
Автор
admin admin time 16:33 ← 29 июня 2009 #
Дело в том, что если бы были явные ошибки Quikcy бы на Unix-ах не отображал формы тоже. Дебаггинг в Quicky включал — пусто.
JiLiZART JiLiZART time 16:44 ← 29 июня 2009 #
Пойду тада FreeBSD ставить на виртуал бокс, эх…
Fr3nzy Fr3nzy time 07:48 ← 30 июня 2009 #
Может быть вызывается какая-то функция или ее что. Просто по удалять куски, пока работать не начнет.
Автор
admin admin time 15:37 ← 29 июня 2009 #
Поставил его, но еще не успел разобраться. Есть дела сегодня, постараюсь вечером успеть.
Автор
admin admin time 22:24 ← 29 июня 2009 #
Дела семейные — до четверга не смогу решить накопленные вопросы.
BigShark BigShark time 10:48 ← 30 июня 2009 #
Опять учить этот пресловутый синтаксис шаблонизатора(

# Многих верстальщиков/дизайнеров отпугивает код в шаблонах.
Вам это сказали верстальщики или это вы так считаете?
Fr3nzy Fr3nzy time 11:22 ← 30 июня 2009 #
Кстати, мягко скажем спорное утверждение :)
Автор
admin admin time 23:10 ← 30 июня 2009 #
Читал много раз на самых разнообразных сайтах/форумах.
Подумайте здраво — если бы такого факта не было, то не создали бы и сами шаблонизаторы.
BigShark BigShark time 02:36 ← 01 июля 2009 #
Их создавали очень давно и не для верстальщиков, а для более красивого кода, так как раньше не было IDE с такими возможностями по подсветки синтаксиса как сейчас.

А вы найдите 10 верстальщиков и задайте вопрос что им лучше Quicky или нативный шаблонизатор.
Боюсь большинство выступит за нативный шаблонизатор нежели за Quicky.
P.S. Так вышло что все мои знакомые верстальщики знаю PHP и предпочитают нативные шаблоны.
JiLiZART JiLiZART time 23:43 ← 01 июля 2009 #
Поставил Zend Server CE, та же самая ситуация, правда грузится быстрее ^^
Ток не сбрасывает соединение а просто выводит 404 ошибку
Автор
admin admin time 23:48 ← 01 июля 2009 #
Считаю, что для дебаггинга таких ошибок было бы здорово создать чат. Исследую данную возможность.
Fr3nzy Fr3nzy time 09:11 ← 02 июля 2009 #
Вот странно. Я себе на винду без проблем практически поставил. Была одна проблема, но это просто потому, что тогда движок не запускался из подпапки.
maxic maxic time 01:54 ← 06 июля 2009 #
Убрать вообще шаблонизатор
Fr3nzy Fr3nzy time 07:49 ← 06 июля 2009 #
O_o?
Freem Freem time 14:12 ← 09 июля 2009 #
Заметил что если form.tpl не более чем 2.8кб (в байтах не запомнил) то Quicky выводит форму (Я про денвер)