Кэширование в Смарти

sokol

Zavolga.Net
Кэширование в Смарти

Интересная вешь получается, чего-то не догоню что не так.
Если в Смари вызываешь глобальную функцию типа:

{insert name="randomBanner" param1="value1" param2="value2"}

то, в режиме "некэширования" конструкция отрабатывает нормально. Включаем кэширование получаем первым вызовом эту ф-ю, т.е. вывод осуществляется даже раньше чем инклюды других шаблонов.

И потом, как быть с авторизацией ведь Смари кэширует даже идентификаторы сессий?
 

_Dimas2003_

Новичок
Ну в смарти кэшируется вывод функций display, fetch.

Может поможет использование cache_id и/или compile_id.
 

sokol

Zavolga.Net
_Dimas2003_ теперь расскажи каким краем это может помочь? ИМХО, это "приватные" переменные Smarty
 

Demiurg

Guest
При включеном кешировании всё, кроме insert берется их кеша, поэтому и инклюдов других шаблонов не происходит.
 

sokol

Zavolga.Net
Не, ну бог с ними с инклюдами, главное что inset,ы вызываются в самом начале:-( и вывод их получается раньше все остальной страницы
 

Demiurg

Guest
Ничего не понял, зачем ты их ставишь в начало, есои они тебе в начале не нужны ?
 

tony2001

TeaM PHPClub
sokol
ты что-то не так делаешь.
инсерты сделаны специально для динамических блоков, которые не кэшируются вместе со страницей.
соотв-но, вставлять их надо там, где они должны быть.
 

sokol

Zavolga.Net
tony2001 - я как раз об этом и говорю.
1. Вставляю все куда надо
2. С выключенным кэшированием все ОК!
3. Включаем кэширование, insert,ы выводятся раньше всего отсального.
4. Смотрим исходник файла кэша, там этот самый insert в сериализованном виде находится в самом начале.
 

tony2001

TeaM PHPClub
>insert в сериализованном виде
покажи.
вообще-то, там должен быть просто ХТМЛ со вставками РНР (инсерты).
 

sokol

Zavolga.Net
a:6:{s:8:"template";a:12:{s:17:"index_general.tpl";b:1;s:10:"header.tpl";b:1;s:14:"lmenu_prod.tpl";b:1;s:13:"our_fprod.tpl";b:1;s:13:"favornews.tpl";b:1;s:17:"new_materials.tpl";b:1;s:12:"favormat.tpl";b:1;s:12:"calendar.tpl";b:1;s:15:"lmenu_opros.tpl";b:1;s:14:"lmenu_news.tpl";b:1;s:16:"lmenu_fthems.tpl";b:1;s:10:"footer.tpl";b:1;}s:6:"config";a:1:{s:11:"falcon.conf";b:1;}s:11:"insert_tags";a:1:{s:8:"xml2html";a:5:{i:0;s:6:"insert";i:1;s:8:"xml2html";i:2;s:10:"header.tpl";i:3;i:89;i:4;b:0;}}s:9:"timestamp";i:1081233568;s:7:"expires";i:1081237168;s:13:"cache_serials";a:0:{}}

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

Потом в нужных местах вставляет:
f8d698aea36fcbead2b9d5359ffca76f{insert_cache a:3:{s:4:"name";s:8:"xml2html";s:8:"xml_file";s:32:"demo.e-logic.ru.local_struct.xml";s:8:"xsl_file";s:13:"frontmenu.xsl";}}f8d698aea36fcbead2b9d5359ffca76f

для вызова insert, но по результатам тестов вызов осуществляется гораздо раньше т.к. вывод инсерт идет до первого тега <html>

и потом меня интересует еще один больной вопрос, SIDы тоже кэшируются, как с ними быть?
 
Сверху