<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
	<title>Хабрахабр / Комментарии к посту «Фрагментарное кэширование в MVC веб-фреймворках» в блоге «PHP»</title>
	<link>http://habrahabr.ru/rss/post/22497/</link>
	<description><![CDATA[Новые комментарии к посту «Фрагментарное кэширование в MVC веб-фреймворках» в блоге «PHP»]]></description>
	<language>ru</language>
	<managingEditor>editor@habrahabr.ru</managingEditor>
	<generator>habrahabr.ru</generator>
	<pubDate>Sat, 11 Feb 2012 12:12:40 GMT</pubDate>
	<lastBuildDate></lastBuildDate>
	<image>
		<link>http://habrahabr.ru/</link>
		<url>http://habrahabr.ru/i/logo.gif</url>
		<title>Хабрахабр</title>
	</image>
	

	
	
	
	
	
		
	
		<item>
			<title>08.04.2008 13:41:08 dmmd</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_550599</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_550599</link>
			<description><![CDATA[Обязательно почитаю.]]></description>
			<pubDate>Tue, 08 Apr 2008 13:41:08 GMT</pubDate>
			<author>dmmd</author>
		</item>
	

	
		<item>
			<title>08.04.2008 07:46:33 dpp</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_549599</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_549599</link>
			<description><![CDATA[Написал подробную <a href="http://habrahabr.ru/blog/django/38685.html">статью</a> о том как устроены шаблоны Django и как в Django решается сабж.]]></description>
			<pubDate>Tue, 08 Apr 2008 07:46:33 GMT</pubDate>
			<author>dpp</author>
		</item>
	

	
		<item>
			<title>04.04.2008 11:50:24 cloud</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_541517</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_541517</link>
			<description><![CDATA[У меня, например, сделано так: кэшируются выборки из базы. Каждая выборка- <a href="http://wiki.toukmanov.ru/dbSelect/">отдельный объект</a>, который может быть поименован согласно того что именно выбирается (это делается как правило на уровне модели), т.е. контроллер спрашивает у модели "записи пользователя 1", модель возвращает выборку и именует ее. Именование идет каскадно. Соотв. по имени можно сбросить все связанные кэши.<br />
<br />
Если очень хочеться закэшировать html, то у меня это реализовано приблизительно следующим образом:<br />
1. Выборка передается в шаблон, шаблон пробегается по ней в цикле, при этом непосредственно запрос к БД/кэшу происходит on-demand.<br />
2. Если мы кэшируем какой-то участок шаблона- если кэш не найден, запоминаются все имена произведенных выборок, после чего запоминаем в кэше собствено html и связи с именованными выборками.<br />
3. При изменении модели она сбрасывает все кэши с некоторым именем, как кэши выборок, так и непосредсвенно html.<br />
<br />
Сам вызов кэша в шаблоне реализован как <a href="http://cloud.habrahabr.ru/blog/38563.html">активный тег</a> поэтому выглядит все как-то так:<br />
<b>контроллер</b><br />
<code><br />
$sel= new items_select();<br />
$sel->Where('UserID',eq,$UserID);<br />
//Имя кэша:<br />
$sel->setCacheName('user_items_'.$UserID);<br />
//Постраничный вывод:<br />
$sel->Limit((int)$_REQUEST['page']*10,10);<br />
</code><br />
<b>Шаблон:</b> <br />
(тупо делаем имя по строке запроса)<br />
<code><br />
&lt;!-- op:cache=&quot;user_items_{$_SERVER.REQUEST_URI}&quot; lifetime=&quot;1000&quot;--&gt;<br />
&lt;!--op:each=&quot;$sel&quot;--&gt;<br />
&lt;a href=&quot;{$Link}&quot;&gt;{$Title}&lt;/a&gt;<br />
&lt;!--/op:each--&gt;<br />
&lt;!--/op:cache--&gt;<br />
</code>]]></description>
			<pubDate>Fri, 04 Apr 2008 11:50:24 GMT</pubDate>
			<author>cloud</author>
		</item>
	

	
		<item>
			<title>03.04.2008 13:31:48 bezuman</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_539397</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_539397</link>
			<description><![CDATA[да и вообще КЭШИРОВАТЬ НУЖНО НЕ КУСКИ VIEW а куски данных которые нужны для вью, которые собираются контроллером, кэширование вью это отдельная ступенька]]></description>
			<pubDate>Thu, 03 Apr 2008 13:31:48 GMT</pubDate>
			<author>bezuman</author>
		</item>
	

	
		<item>
			<title>03.04.2008 13:24:40 bezuman</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_539377</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_539377</link>
			<description><![CDATA[все круто но само по себе кеширование кусков кода или результатов функций это просто<br />
<br />
сложнее гораздо когда один и тот же кусок данных используется в нескольких местах) в этом случае при его изменении необходимо сбрасывать кеш со всеми местами где он используется) вот в таком случае не просто получается]]></description>
			<pubDate>Thu, 03 Apr 2008 13:24:40 GMT</pubDate>
			<author>bezuman</author>
		</item>
	

	
		<item>
			<title>01.04.2008 21:23:55 dmmd</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_536008</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_536008</link>
			<description><![CDATA[Ну что ж, действительно, при таком подходе (похоже на Code Igniter, что ли) так будет совсем красиво. У меня-то переменные в шаблоне уже просто как $product, $category, $books и т.п. появляются, так что __call или __get некуда приделывать.<br />
Замечательное развитие мысли, спасибо.]]></description>
			<pubDate>Tue, 01 Apr 2008 21:23:55 GMT</pubDate>
			<author>dmmd</author>
		</item>
	

	
		<item>
			<title>01.04.2008 21:06:15 davojan</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_535994</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_535994</link>
			<description><![CDATA[Ну, собственно, да - элегантнее можно. По крайней мере в том движке, в котором работаю я, все данные к представлению попадают через специальный объект, который называется "контекст" (в шаблоне он называется $c), так вот:<br />
<br />
Контроллер (было):<br />
<code><br />
$this->c->someVar = $this->calculateSomeVar( $argument );<br />
</code><br />
Контроллер (стало):<br />
<code><br />
$this->c->jitVar( 'someVar', $this, 'calculateSomeVar', $argument );<br />
</code><br />
<br />
Представление (не изменяется):<br />
<code><br />
&lt;?= $c-&gt;someVar ?><br />
</code><br />
<br />
Как написать <code>__get()</code> надо объяснять?]]></description>
			<pubDate>Tue, 01 Apr 2008 21:06:15 GMT</pubDate>
			<author>davojan</author>
		</item>
	

	
		<item>
			<title>01.04.2008 20:51:31 dmmd</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_535983</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_535983</link>
			<description><![CDATA[Спасибо за подсказку про строку, проверю, не знал.]]></description>
			<pubDate>Tue, 01 Apr 2008 20:51:31 GMT</pubDate>
			<author>dmmd</author>
		</item>
	

	
		<item>
			<title>01.04.2008 20:46:54 davojan</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_535980</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_535980</link>
			<description><![CDATA[Очень полезная идея, эдакий отложенный запуск экшна. Правда есть подозрение, что если подумать, то можно реализовать это элегантнее.<br />
<br />
Из замечаний: со статическими вызовом перемудрили, не нужно никаких двух двоеточий, call_user_func умеет принимать на вход массив, в котором первый элемент строка, а не объект - тогда он делает вызов статической функции.<br />
<br />
А вообще, спасибо за идею.]]></description>
			<pubDate>Tue, 01 Apr 2008 20:46:54 GMT</pubDate>
			<author>davojan</author>
		</item>
	

	
		<item>
			<title>31.03.2008 08:30:49 AirWorker</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_532617</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_532617</link>
			<description><![CDATA[ошибся немного - page - это свойство: <br />
$this->page->getLayout(2)->getBlock('spisokTovarov)->аВотТутМожноВсе();<br />
(ну да ладно:)]]></description>
			<pubDate>Mon, 31 Mar 2008 08:30:49 GMT</pubDate>
			<author>AirWorker</author>
		</item>
	

	
		<item>
			<title>31.03.2008 08:29:04 AirWorker</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_532610</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_532610</link>
			<description><![CDATA[Фундаментальная проблема - это то, что контроллер никак не может добраться до этого блока, чтобы "контролировать" его.<br />
Мой концепт (action-controller)<br />
<br />
...<br />
$this->page()->getLayout()->getLayout()->getBlock('spisokTovarov)->аВотТутМожноВсе();<br />
...<br />
или:<br />
$this->page()->getLayout(2)->getBlock('spisokTovarov)->аВотТутМожноВсе();]]></description>
			<pubDate>Mon, 31 Mar 2008 08:29:04 GMT</pubDate>
			<author>AirWorker</author>
		</item>
	

	
		<item>
			<title>31.03.2008 08:14:44 eschava</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_532579</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_532579</link>
			<description><![CDATA[>> вызывать контроллер из представления логически абсурдно<br />
<br />
почитайте, пожалуйста, Фаулера "Архитектура корпоративных программных приложений", ставшую уже классической.<br />
<br />
Станете еще большим занудой и эстетом, но в более правильном направлении ;)]]></description>
			<pubDate>Mon, 31 Mar 2008 08:14:44 GMT</pubDate>
			<author>eschava</author>
		</item>
	

	
		<item>
			<title>30.03.2008 22:22:30 alexblack</title>
			<guid isPermaLink="true">#comment_532099</guid>
			<link>#comment_532099</link>
			<description><![CDATA["выполнить модель данных" - LOL<br />
<br />
p.s. брызь читать внимательно: <a href="http://ru.wikipedia.org/wiki/Model-view-controller" title="http://ru.wikipedia.org/wiki/Model-view-controller">http://ru.wikipedia.org/wiki/Model-view-&hellip;</a>]]></description>
			<pubDate>Sun, 30 Mar 2008 22:22:30 GMT</pubDate>
			<author>alexblack</author>
		</item>
	

	
		<item>
			<title>30.03.2008 17:09:59 BonySoft</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_531542</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_531542</link>
			<description><![CDATA[>>Класс за основу брал отсюда: http://larin.in/archives/1<br />
:)) наверное все-таки отсюда: http://larin.in/archives/21]]></description>
			<pubDate>Sun, 30 Mar 2008 17:09:59 GMT</pubDate>
			<author>BonySoft</author>
		</item>
	

	
		<item>
			<title>30.03.2008 16:38:23 tosick</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_531445</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_531445</link>
			<description><![CDATA[Кроме MVC push существует еще MVC pull, который и подразумевает вызов контроллера из вью.]]></description>
			<pubDate>Sun, 30 Mar 2008 16:38:23 GMT</pubDate>
			<author>tosick</author>
		</item>
	

	
		<item>
			<title>30.03.2008 12:54:51 Tenkoff</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_530941</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_530941</link>
			<description><![CDATA[Это я коментирующим тута :)]]></description>
			<pubDate>Sun, 30 Mar 2008 12:54:51 GMT</pubDate>
			<author>Tenkoff</author>
		</item>
	

	
		<item>
			<title>30.03.2008 12:25:06 Santacruz</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_530843</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_530843</link>
			<description><![CDATA[Правильный выбор товарисч!]]></description>
			<pubDate>Sun, 30 Mar 2008 12:25:06 GMT</pubDate>
			<author>Santacruz</author>
		</item>
	

	
		<item>
			<title>30.03.2008 10:42:23 dmmd</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_530584</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_530584</link>
			<description><![CDATA[Да не то это, это как бы компонент кэшируется целиком.<br />
У меня про другое совсем, см. в апдейте.]]></description>
			<pubDate>Sun, 30 Mar 2008 10:42:23 GMT</pubDate>
			<author>dmmd</author>
		</item>
	

	
		<item>
			<title>30.03.2008 10:25:46 iniweb</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_530538</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_530538</link>
			<description><![CDATA[function test()<br />
{<br />
    if(!$content = $this->CI->cache->load('top_news', 60*60))<br />
    {<br />
       $this->CI->view(shablon) - К примеру<br />
<br />
    $this->CI->cache->save($content, 'top_news');<br />
    }<br />
return $content;<br />
}<br />
<br />
Получаем нужный результат, все происходит до выполенения View.<br />
<br />
Класс за основу брал отсюда: http://larin.in/archives/11]]></description>
			<pubDate>Sun, 30 Mar 2008 10:25:46 GMT</pubDate>
			<author>iniweb</author>
		</item>
	

	
		<item>
			<title>30.03.2008 10:03:35 dmmd</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_530506</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_530506</link>
			<description><![CDATA[Да, это очень похоже, но не совсем то.<br />
В документации: <code>$res = $cache->foobar('1', '2');</code>, то есть для выполнения закэшированного нужно все-таки знать, ЧТО должно выполниться.<br />
У меня же этого знать не нужно. Знаем мы только в контроллере, а в шаблоне всегда одно и то же: <code>$res = utils::run( $res );</code><br />
Повторюсь: я и так использую Zend Cache, обернув его своим cacher.]]></description>
			<pubDate>Sun, 30 Mar 2008 10:03:35 GMT</pubDate>
			<author>dmmd</author>
		</item>
	

	
		<item>
			<title>30.03.2008 09:52:35 feedbee</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_530486</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_530486</link>
			<description><![CDATA[Варианты есть разные. Вариант 1: поставить триггеры на изменение и добавление данных. При изменении устанавливать флаг в отдельной таблице. Способ наверное самый простой. Проверку флага можно организовать в хранимой процедуре, которая будет возвращать либо кеш, либо выполнит запрос и вернет новые данные, закешировав их. Если кеш не хранится в базе, достаточно просто получать из базы флаг.<br />
<br />
Второй вариант очевиден. Управлять флагом при внесении изменений в базу из модели данных. Т.е. когда PHP/Python/Ruby/C# или что-то там еще отправило данные в таблицу, выставлять флаг (можно в базе, можно вне базы).<br />
<br />
А можно и вообще без флагов. При добавлении/изменении данных создавать кеш. Это подойдет, если кеш создается относительно быстро, а добавление/изменение происходит относительно редко.<br />
<br />
Ну есть вообщем-то и другие варианты, но их я пожалуй опущу...]]></description>
			<pubDate>Sun, 30 Mar 2008 09:52:35 GMT</pubDate>
			<author>feedbee</author>
		</item>
	

	
		<item>
			<title>30.03.2008 09:40:39 Santacruz</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_530457</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_530457</link>
			<description><![CDATA[Посмотрите пожалуйста <a href="http://framework.zend.com/manual/en/zend.cache.frontends.html#zend.cache.frontends.function" title="http://framework.zend.com/manual/en/zend.cache.frontends.html#zend.cache.frontends.function">http://framework.zend.com/manual/en/zend&hellip;</a><br />
<br />
Вы это хотите реализовать?]]></description>
			<pubDate>Sun, 30 Mar 2008 09:40:39 GMT</pubDate>
			<author>Santacruz</author>
		</item>
	

	
		<item>
			<title>30.03.2008 08:42:12 dmmd</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_530371</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_530371</link>
			<description><![CDATA[Так никто же не вызывает ничего подобного. Код читали?]]></description>
			<pubDate>Sun, 30 Mar 2008 08:42:12 GMT</pubDate>
			<author>dmmd</author>
		</item>
	

	
		<item>
			<title>30.03.2008 02:59:16 Tenkoff</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_530179</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_530179</link>
			<description><![CDATA[И если уж такая пьянка, с вызовом данных из представления, то вместо этого порно - "{block action="Mod_Products.blockNewProducts" limit="10"}", можно было бы сделать так: {model="NewsBlock" view="News"}, т.е. указать какую модель данных выполнить и какое представление наложить на всю эту кашу]]></description>
			<pubDate>Sun, 30 Mar 2008 02:59:16 GMT</pubDate>
			<author>Tenkoff</author>
		</item>
	

	
		<item>
			<title>30.03.2008 02:45:21 Tenkoff</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_530176</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_530176</link>
			<description><![CDATA[Может я зануда и эстет, НО:<br />
- вызывать контроллер из представления логически абсурдно<br />
- пихать в контроллер "модельную" состовляющую - некрасиво<br />
<br />
p.s. брызь читать внимательно: http://ru.wikipedia.org/wiki/Model-view-controller]]></description>
			<pubDate>Sun, 30 Mar 2008 02:45:21 GMT</pubDate>
			<author>Tenkoff</author>
		</item>
	

	
		<item>
			<title>29.03.2008 23:31:31 BonySoft</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_530072</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_530072</link>
			<description><![CDATA[>> Решаемая, конечно, но геморная. Ведь надо знать, менялись <br />
>> ли данные в базе. Можно такой мониторинг организовать,<br />
не могли бы вы порекомендовать пути решения? тоже бьюсь над проблемой "как узнать, expired ли кэш query, не обращаясь к БД" и кроме как "сбрасывать кэш при изменении данных в админке" (вот это действительно ugly :), ничего в голову не приходит]]></description>
			<pubDate>Sat, 29 Mar 2008 23:31:31 GMT</pubDate>
			<author>BonySoft</author>
		</item>
	

	
		<item>
			<title>29.03.2008 22:15:41 dmmd</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_529985</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_529985</link>
			<description><![CDATA[Это, между прочим, вопрос - что лучше? Настраивать отдельно (и помнить об этой новой связи) или выполнять действия именно там, где они нужны.<br />
Потом, во view придется все-таки указать сам блок для кэширования, это и сделано.<br />
Заметка все равно не об этом, а только о маленьком нюансе.]]></description>
			<pubDate>Sat, 29 Mar 2008 22:15:41 GMT</pubDate>
			<author>dmmd</author>
		</item>
	

	
		<item>
			<title>29.03.2008 22:05:21 eschava</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_529961</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_529961</link>
			<description><![CDATA[настоящая элегантность - это кеширование должно быть вообще прозрачным и для view и для контроллера, а настраиваться где-нибудь отдельно]]></description>
			<pubDate>Sat, 29 Mar 2008 22:05:21 GMT</pubDate>
			<author>eschava</author>
		</item>
	

	
		<item>
			<title>29.03.2008 19:58:19 dmmd</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_529753</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_529753</link>
			<description><![CDATA[Да, похоже.]]></description>
			<pubDate>Sat, 29 Mar 2008 19:58:19 GMT</pubDate>
			<author>dmmd</author>
		</item>
	

	
		<item>
			<title>29.03.2008 19:50:43 unnamed01</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_529743</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_529743</link>
			<description><![CDATA[Насколько я понял основная фишка здесь паттерн Lazy load (или как-то похоже называется). То есть мы в шаблон передаем не данные, а указываем как их получить. А получаются они только в момент реального использования, то есть при работе с темплейтом.]]></description>
			<pubDate>Sat, 29 Mar 2008 19:50:43 GMT</pubDate>
			<author>unnamed01</author>
		</item>
	

	
		<item>
			<title>29.03.2008 18:13:34 twi</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_529598</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_529598</link>
			<description><![CDATA[Да, каюсь, прочитал заголовок только и сразу комментировать... =)]]></description>
			<pubDate>Sat, 29 Mar 2008 18:13:34 GMT</pubDate>
			<author>twi</author>
		</item>
	

	
		<item>
			<title>29.03.2008 18:12:08 mx2000</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_529594</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_529594</link>
			<description><![CDATA[А если данные грепаются не из базы? А, скажем, из сокета?]]></description>
			<pubDate>Sat, 29 Mar 2008 18:12:08 GMT</pubDate>
			<author>mx2000</author>
		</item>
	

	
		<item>
			<title>29.03.2008 18:00:48 dmmd</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_529583</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_529583</link>
			<description><![CDATA[Написал апдейт, пояснил.]]></description>
			<pubDate>Sat, 29 Mar 2008 18:00:48 GMT</pubDate>
			<author>dmmd</author>
		</item>
	

	
		<item>
			<title>29.03.2008 18:00:10 dmmd</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_529582</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_529582</link>
			<description><![CDATA[Написал апдейт, пояснил.]]></description>
			<pubDate>Sat, 29 Mar 2008 18:00:10 GMT</pubDate>
			<author>dmmd</author>
		</item>
	

	
		<item>
			<title>29.03.2008 17:59:39 dmmd</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_529580</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_529580</link>
			<description><![CDATA[Спасибо за возможность.]]></description>
			<pubDate>Sat, 29 Mar 2008 17:59:39 GMT</pubDate>
			<author>dmmd</author>
		</item>
	

	
		<item>
			<title>29.03.2008 17:58:52 ivr</title>
			<guid isPermaLink="true">#comment_529578</guid>
			<link>#comment_529578</link>
			<description><![CDATA[вот пример такого подхода для JSP: <a href="http://www.servletsuite.com/servlets/cachetag.htm" title="http://www.servletsuite.com/servlets/cachetag.htm">http://www.servletsuite.com/servlets/cac&hellip;</a>]]></description>
			<pubDate>Sat, 29 Mar 2008 17:58:52 GMT</pubDate>
			<author>ivr</author>
		</item>
	

	
		<item>
			<title>29.03.2008 17:35:54 dmmd</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_529553</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_529553</link>
			<description><![CDATA[Так и делаю, написал выше. Иногда все-таки не все удается разбить, или это породило бы массу дублирования. Пример с последними товарами выбран для простоты. Показательно, что автор подкаста столкнулся именно с проблемой, для которой я предложил решение. То есть это не только мне нужно. ;-)]]></description>
			<pubDate>Sat, 29 Mar 2008 17:35:54 GMT</pubDate>
			<author>dmmd</author>
		</item>
	

	
		<item>
			<title>29.03.2008 17:33:53 dmmd</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_529549</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_529549</link>
			<description><![CDATA[Я тут писал не про само кэширование, оно-то у меня именно с помощью Zend Cache и сделано. cacher - это мой класс-обертка, для компактности.]]></description>
			<pubDate>Sat, 29 Mar 2008 17:33:53 GMT</pubDate>
			<author>dmmd</author>
		</item>
	

	
		<item>
			<title>29.03.2008 17:32:51 dmmd</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_529548</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_529548</link>
			<description><![CDATA[Да, такое у меня есть, именно вызывается отдельный метод какого-то контроллера. Однако на практике так делать удобно не всегда.]]></description>
			<pubDate>Sat, 29 Mar 2008 17:32:51 GMT</pubDate>
			<author>dmmd</author>
		</item>
	

	
		<item>
			<title>29.03.2008 17:31:11 dmmd</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/php/22497/#comment_529544</guid>
			<link>http://habrahabr.ru/blogs/php/22497/#comment_529544</link>
			<description><![CDATA[В моем фреймворке компоненты тоже есть, конечно. И тем не менее, описанная схема полезна. Впрочем, тут не поспоришь - если не возникает необходимости, то пользоваться и не надо. :-)]]></description>
			<pubDate>Sat, 29 Mar 2008 17:31:11 GMT</pubDate>
			<author>dmmd</author>
		</item>
	

	
</channel>
</rss>

