<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Кеширование - LabCMS</title>
    <link>https://labcms.ru/discussion-theme.28/</link>
    <atom:link href="https://labcms.ru/discussion-theme.28.xml" rel="self" type="application/rss+xml"/>
    <description>Тема в форуме LabCMS</description>
    <language>ru-ru</language>
    <pubDate>Sat, 13 Jun 2026 02:22:16 +0300</pubDate>
    <lastBuildDate>Sat, 13 Jun 2026 02:22:16 +0300</lastBuildDate>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>LabCMS Feeder</generator>
    <item>
      <title>Loki</title>
      <link>https://labcms.ru/discussion-theme.28/1/#p173</link>
      <description><![CDATA[<blockquote class="bb bb_quote">random2:Кстати, а какой то changelog планируется вести для версий? Или он где-то ведется, а я об этом не знаю?</blockquote><br />
Для релизов ведется вот тут<br />
<a rel="nofollow" href="http://labcms.ru/whatsnew">http://labcms.ru/whatsnew</a>
<br />&#160;<br />
а для ревизий - только в виде комментариев репозитория.]]></description>
      <pubDate>Thu, 24 Mar 2011 12:20:28 +0300</pubDate>
      <guid>https://labcms.ru/discussion-theme.28/1/#p173</guid>
    </item>
    <item>
      <title>random2</title>
      <link>https://labcms.ru/discussion-theme.28/1/#p172</link>
      <description><![CDATA[Кстати, а какой то changelog планируется вести для версий? Или он где-то ведется, а я об этом не знаю?]]></description>
      <pubDate>Thu, 24 Mar 2011 12:08:28 +0300</pubDate>
      <guid>https://labcms.ru/discussion-theme.28/1/#p172</guid>
    </item>
    <item>
      <title>random2</title>
      <link>https://labcms.ru/discussion-theme.28/1/#p171</link>
      <description><![CDATA[Вот спасибо. Срочно качаю последнюю ревизию <img width="16" height="16" src="https://labcms.ru/skins/labcms/images/smiles/smiley.png" alt="">]]></description>
      <pubDate>Thu, 24 Mar 2011 12:07:41 +0300</pubDate>
      <guid>https://labcms.ru/discussion-theme.28/1/#p171</guid>
    </item>
    <item>
      <title>Loki</title>
      <link>https://labcms.ru/discussion-theme.28/1/#p170</link>
      <description><![CDATA[Теперь кэш работает просто и понятно:<br />
есть класс Cache_Generic, при создании экземпляра которого, в качестве параметра указываем место хранения кэша (file или memcache). Этот параметр можно и не указывать - тогда он будет взят из настроек.<br />
Класс имеет 4 метода:<br />
set<br />
get<br />
remove<br />
clean<br />
Думаю, при работе с ним проблем быть не должно.]]></description>
      <pubDate>Wed, 23 Mar 2011 22:03:00 +0300</pubDate>
      <guid>https://labcms.ru/discussion-theme.28/1/#p170</guid>
    </item>
    <item>
      <title>Loki</title>
      <link>https://labcms.ru/discussion-theme.28/1/#p169</link>
      <description><![CDATA[Почитал я свое сообщение и понял что так жить нельзя<img width="16" height="16" src="https://labcms.ru/skins/labcms/images/smiles/smiley.png" alt=""><br />
Я решил сделать фабрику классов Cache_Default или Cache_Common, которая будет создавать экземпляры, работающие с классами синглтон. Думаю, в ближайшей ревизии я выложу уже готовое решение.]]></description>
      <pubDate>Tue, 22 Mar 2011 16:19:18 +0300</pubDate>
      <guid>https://labcms.ru/discussion-theme.28/1/#p169</guid>
    </item>
    <item>
      <title>Loki</title>
      <link>https://labcms.ru/discussion-theme.28/1/#p166</link>
      <description><![CDATA[Вопрос не столько глупый, сколько больной<img width="16" height="16" src="https://labcms.ru/skins/labcms/images/smiles/smiley.png" alt=""><br />
Сначала немного теории.<br />
Кэш используется в трех местах:<br />
1. Кэширование объектов<br />
2. Кэширование результатов запросов к БД<br />
3. Кэширование готового html
<br />&#160;<br />
Кэширование объектов стоит немного особняком по причине того, что оно обнуляется отдельно от остального кэша, имеет очень простую структуру, не требует какого-то сложного управления (проверка валидности и т.п.), не должно вытесняться при использовании "умной" системы кэширования, кроме того, инициализация этого кэша происходит еще до инициализации всех прочих классов. В общем, это оправдание существованию этого класса.
<br />&#160;<br />
Со следующими двумя вариантами ситуация такая: по умолчанию, результаты кэшируются в файлах, но общую систему кэширования и для шаблонизатора и для БД сделать не получается, так как smarty имеет собственную развитую системы кэширования на файлах, которая глубок заточена под его собственные нужды.<br />
Класс же БД использует универсальную файловую систему кэширования.
<br />&#160;<br />
При переходе к кэшированию в memcache и БД и Smarty используют универсальную систему кэширования. Первая - потому что она все время так делает<img width="16" height="16" src="https://labcms.ru/skins/labcms/images/smiles/smiley.png" alt=""> Вторая - потому что не умеет работать с memcache "из коробки"&#160;&#160;и научена этому путем допиливания, о котором я уже писал.
<br />&#160;<br />
Вот поэтому существует три места, где можно сохранить данные:<br />
Если данные нужны в пределах узла - можно сохранить их в массиве LabCMS::i()-&gt;cache<br />
Этот вариант неудобен тем, что там нет никаких проверок, так что проверку актуальности придется проводить самому. Зато, это очень просто.
<br />&#160;<br />
Вариант второй. Сохранять готовый html блок с помощью стандартных средств Smarty. Этот вариант совсем замечательный, но только в том случае, если надо кэшировать html.
<br />&#160;<br />
И третий вариант - использовать один из классов кэширования, находящихся по адресу /kernel/classes/Cache<br />
Lab.php или Memcache.php<br />
Lab.php является немного допиленной оберткой вокруг Lite.php.
<br />&#160;<br />
Вот по изложенным выше причинам, нет единого класса, отвечающего за кэширование - до сих пор он никому был не нужен<img width="16" height="16" src="https://labcms.ru/skins/labcms/images/smiles/smiley.png" alt="">]]></description>
      <pubDate>Thu, 17 Mar 2011 18:07:30 +0300</pubDate>
      <guid>https://labcms.ru/discussion-theme.28/1/#p166</guid>
    </item>
    <item>
      <title>random2</title>
      <link>https://labcms.ru/discussion-theme.28/1/#p164</link>
      <description><![CDATA[Можно глупый вопрос по кешированию?<br />
У меня есть данные, я их забираю через file_get_contents с удаленного сервера в самописном модуле. Хотелось бы их как-то кэшировать через встроенный механизм кэширования.
<br />&#160;<br />
В идеале, хочется их кэшировать на 6 часов, но при невозможности получить данные через file_get_contents брать из кэша последнюю версию, и иметь возможность сбросить кэш вручную. <br />
Как вообще кэш работает? Какой класс почитать?<img width="16" height="16" src="https://labcms.ru/skins/labcms/images/smiles/smiley.png" alt=""> ]]></description>
      <pubDate>Thu, 17 Mar 2011 16:51:41 +0300</pubDate>
      <guid>https://labcms.ru/discussion-theme.28/1/#p164</guid>
    </item>
  </channel>
</rss>
