Принимаем вопросы от населения
Moool13 |
|
---|---|
"обновлять его нужно только под гостем"
т.е.?
|
Dayver |
|
---|---|
Отредактировано: Dayver (06.04.2012 18:44, 13 лет назад) |
Nik Samokhvalov |
|
---|---|
Dayver, спасибо тебе, теперь все понятно ;-) Sorry for my English.
|
Dayver |
|
---|---|
секция
Pavlo Tkachenko aka Dayver
|
|
Отредактировано: Dayver (06.04.2012 18:44, 13 лет назад) |
Nik Samokhvalov |
|
---|---|
На всякий случай уточнить хочу: мне для модуля, если я хочу, чтобы был файловый кеш, нужно написать вот это: if ($cache && $usr['id'] === 0) { $cache->store->write(); } $cache->store->write() — store — это имя модуля? Sorry for my English.
|
Dayver |
|
---|---|
Я сам еще не полностью разобрался с кешем (тоже модуль для е-мага делаю) но насколько знаю store (для обычного mysql кеша $cache->db->store() ) - команда связанная с "положить в кеш" так же по аналогии с $cache->db->get() "взять из кеша" Pavlo Tkachenko aka Dayver
|
Moool13 |
|
---|---|
"т.е - что бы не сохранить в файл страницу которая может отличатся личными настройками залогинившегося гостя - например другая тема оформления и вообще другой набор информации на странице)"
Это понятно) Я имею ввиду как обновить кеш под гостем? Или это не через админку? |
Dayver |
|
---|---|
Думаю со временм он сам обновляется (наверное у него есть определенное время жизни), а если нужно вручную то думаю это через "админка-файловый кеш" - хотя это мои догадки ибо тему еще изучил не полностью Pavlo Tkachenko aka Dayver
|
Trustmaster |
|
---|---|
Пишем в статический кеш всегда только после того, как отработает footer: if ($cache && $usr['id'] === 0 && $cfg['cache_YOURMODULE']) { $cache->page->write(); // здесь page - слой кеширования, а не модуль } Чистим статику при правке и добавлении/удалении элементов: if ($cache && $cfg['cache_YOURMODULE']) { $cache->page->clear('YOURMODULE'); } Можно чистить не всё разом, а отдельные элементы, но это несколько сложнее. И не забываем добавить в config.php тот самый $cfg['cache_YOURMODULE'], чтобы можно было быстро его включить/выключить. Главное: когда использовать статический кеш. А использовать его следует, если на странице от запроса к запросу для гостя ничего не меняется. Тогда мы можем отдавать страницы практически как статику. Почему этот кеш работает только для гостей, dayver уже объяснил. Added 1 minute later: Время жизни у статического кеша неограниченное. Поэтому нужна явная очистка в коде. Если надо экстренно почистить, админ может это сделать в Администрирование / Прочее / Дисковый кеш. May the Source be with you!
|
Nik Samokhvalov |
|
---|---|
Как понять, слой кеширования? Sorry for my English.
|
Dayver |
|
---|---|
Видимо из вышепреведенной ссылки на документацию в коте есть три слоя
Pavlo Tkachenko aka Dayver
|
Nik Samokhvalov |
|
---|---|
Ясно, понял. Мемори — это программный кеш, на время исполнения скрипта? Sorry for my English.
|
Trustmaster |
|
---|---|
Memory - это кеширование с помощью APC или Memcached. В представленном дайвером выше списке сверху вниз уменьшается объём кешируемых данных и увеличивается скорость записи. То есть в mem следует хранить самые часто меняющиеся данные, а в page - самые постоянные. Ещё у нас весьма печальный опыт использования mem кеша с APC, потому что APC кеш един для всех приложений на одном хосте. Поэтому рекомендуется использовать его только с memcached, либо если на хосте только один сайт. Возможно, в будущих версиях из cache.php будут удалены бесполезные ныне драйверы. May the Source be with you!
|
Nik Samokhvalov |
|
---|---|
В движке можно где-нибудь посмотреть пример работы мемори-кэша? $cache->store->write() Что делает store? Записывает кеш? Sorry for my English.
|
Trustmaster |
|
---|---|
Пример есть в whosonline. Приведенная выше строка некорректна. Никакого $cache->store нет и в помине, как и метода write() у любого из слоев. May the Source be with you!
|