насколько может снижать скорость использование шаблонов??

tony2001

TeaM PHPClub
>Грустно.. а я думал что smarty аналог zend_compiler'a ..
=))))))))))
Смарти - это движок шаблонов с кэшированием =)

>Против таких весчей есть одно средство - акселераторы.
против статики?

Альен:
еще xdebug.derickrethans.nl умеет делать профайлинг - очень вкусная вещь...
 

tony2001

TeaM PHPClub
>Кеширует html output? Или opcode?
есть два этапа "кэширования":
1) из шаблона генерится РНР-код
это происходит 1(один) раз при изменении шаблона.
2) для каждого шаблона и для каждого ID кэша (это может быть, например, имя раздела сайта) генерится статика - http://smarty.php.net/manual/en/caching.php

т.е. для каждого раздела генерится _готовая_ статическая страница - http://smarty.php.net/manual/en/caching.multiple.caches.php

статика генерится заново согласно установкам - время ее "устаревания" настраивается.

при этом в "статику" в конкретных местах можно вставлять динамические фрагменты (например, блок "кол-во юзеров в онлайне") - http://smarty.php.net/manual/en/plugins.inserts.php
 

Screjet

Новичок
Спасибо! Растолковал, все предельно ясно.
Механизм кэширования интересный, позволяет значительно ускорить вывод страниц..
Только одно "но", сам smatry содержит 86К кода, заставляя ПХП парсить его каждый раз..

ЗЫ. Теперь ясно почему для smarty рекомендуется акселератор :)
 

tony2001

TeaM PHPClub
>Только одно "но", сам smatry содержит 86К кода, заставляя ПХП парсить его каждый раз..
угу, вот поэтому я хочу как-нить сесть и сделать light-версию Смарти...
 

Alexandre

PHPПенсионер
кстати в начале постинга, кто-то заикнулся об хостинге...
у меня в практике был случай, когда из-за плохого канала провайдера сайт крутился еле-еле... сменил провайдера и сайт пошустрее стал!
может тоже вариант?
 

Tronyх

Новичок
угу, вот поэтому я хочу как-нить сесть и сделать light-версию Смарти...
А я уже делаю, могу дать исходник, только он пока что местами сыроват и пока что реализует не все нужные функции, вот что уже есть:
1. Компиляция шаблонов. ;)
2. Модульность.
3. Отлов ошибок в синтаксисе шаблона. (кстати это у меня сделано лучше чем в Смарти)
4. Фильтры (до компиляции, после, output)
5. Логические инструкции (if, else)
6. Блоки (если "это" так можно назвать)
7. Параметры для инструкций можно задавать в любом порядке.
8. Альтернативный вариант записи массивов {$array[key]} == {$array.key}
9. Уровень контроля за ошибками, запись ошибок в лог, любые разделители вокруг инструкций, PHP код в шаблоне(Y/N), и другие мелкие фичи.

А самое главное, это то что в нём не надо делать $smarty->assign('var', 'var_content'); Используется глобальное пространство имён, если какую-нибудь переменную нельзя ни к коем случае выводить(например пароль админа), делается это так: $tpl->BlockVar('admin_pass'); и компилятор не пропустит эту переменную.

Весит это всё(вместе с парсером и плагинами) 40кб, а сам подключаемый класс - 10кб.
 

tony2001

TeaM PHPClub
>угу, вот поэтому я хочу как-нить сесть и сделать light-версию Смарти...
под этим я имел ввиду не изобретения нового, а выкидывание из Смарти того, чего я никогда не использую и не использовал.
в остальном он меня полностью устраивает.
 
Сверху