<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Изучаем Web &#187; db</title>
	<atom:link href="http://brotkin.ru/tag/db/feed/" rel="self" type="application/rss+xml" />
	<link>http://brotkin.ru</link>
	<description>ковыряемся в Internet</description>
	<lastBuildDate>Wed, 02 May 2012 12:49:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Ko3: знаете ли вы? Часть 2</title>
		<link>http://brotkin.ru/2009/11/11/do-you-know-2/</link>
		<comments>http://brotkin.ru/2009/11/11/do-you-know-2/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 07:24:26 +0000</pubDate>
		<dc:creator>biakaveron</dc:creator>
				<category><![CDATA[знаете ли вы]]></category>
		<category><![CDATA[anchor]]></category>
		<category><![CDATA[db]]></category>
		<category><![CDATA[Kohana3]]></category>
		<category><![CDATA[route]]></category>
		<category><![CDATA[timestamp]]></category>

		<guid isPermaLink="false">http://brotkin.ru/?p=276</guid>
		<description><![CDATA[Продолжаю публиковать полезные (надеюсь) приемы в Ko3.

Мучаетесь с роутингом? Непонятно, будет ли отрабатывать новый маршрут? Вам в помощь метод matches($uri) класса Route. Он принимает на входе тестируемый URI, а возвращает либо FALSE (если адрес не проходит через условия маршрута), либо массив с найденными параметрами (controller, action и прочие).
Есть разница между $this->request->uri() и $this->request->route->uri(). Оба они [...]]]></description>
			<content:encoded><![CDATA[<p>Продолжаю публиковать полезные (надеюсь) приемы в <strong>Ko3</strong>.</p>
<ul>
<li>Мучаетесь с роутингом? Непонятно, будет ли отрабатывать новый маршрут? Вам в помощь метод <code>matches($uri)</code> класса <strong>Route</strong>. Он принимает на входе тестируемый <strong>URI</strong>, а возвращает либо <strong>FALSE</strong> (если адрес не проходит через условия маршрута), либо массив с найденными параметрами (<em>controller</em>, <em>action</em> и прочие).</li>
<li>Есть разница между <code>$this->request->uri()</code> и <code>$this->request->route->uri()</code>. Оба они используют текущий маршрут, но в первом случае по умолчанию будут использованы текущие параметры запроса (контроллер и экшен), а вот во втором &#8211; те, что были указаны в методе <code>default()</code> при добавлении маршрута. Таким образом, первый вариант удобен для минимальной корректировки текущего <strong>URL</strong> (смена <em>id</em> или другого дополнительного аргумента), а второй &#8211; для модификации адреса в рамках целого маршрута.</li>
<li>Если в вашем контроллере добавлены методы <code>before()</code> и <code>after()</code>, не забывайте вызывать в них <code>parent::before()</code> и <code>parent::after()</code>, соответственно в начале и конце метода. Особенно это касается контроллеров-потомков <strong>Controller_Template</strong>, т.к. в них указанные методы используются для инициализации и вывода основного шаблона <code>$this->template</code>.</li>
<li>Хотите, чтобы все генерируемые внешние ссылки открывались в новом окне? Используйте свойство <code>HTML::$windowed_urls</code>. После установки его значения в <strong>TRUE</strong> все внешние ссылки (т.е. абсолютные ссылки, с явно указанным протоколом, например <em>HTTP://</em>) будет сгенерированы с атрибутом <code>target='_blank'</code>. Например:<br />
<code></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// выводим ссылки на дружественные блоги</span>
HTML<span style="color: #339933;">::</span><span style="color: #000088;">$windowed_urls</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">TRUE</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$links</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$title</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$link</span><span style="color: #009900;">&#41;</span>
    <span style="color: #b1b100;">echo</span> HTML<span style="color: #339933;">::</span><span style="color: #004000;">anchor</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$link</span><span style="color: #339933;">,</span> <span style="color: #000088;">$title</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&lt;br /&gt;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// меняем значение обратно, может пригодиться</span>
HTML<span style="color: #339933;">::</span><span style="color: #000088;">$windowed_urls</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">FALSE</span><span style="color: #339933;">;</span></pre></div></div>

<p></code></p>
<blockquote><p>Замечу, что установка атрибута <code>target</code> не очень приветствуется, т.к. поведение таких ссылок непредсказуемо для пользователя.</p></blockquote>
</li>
<li>Очень часто вместо унылых дат вида &#8220;15.10.2009&#8243; показывают, сколько времени прошло (так сделано на оф. форуме <strong>Kohana</strong>, к примеру). Можно вычислять их вручную, а можно использовать &#8220;неточный&#8221; метод <code>date::fuzzy_span($timestamp)</code>. Он смотрит разницу между текущим временем и переданным в <code>$timestamp</code> (в формате <em>UNIX timestamp</em>, т.к. количество прошедших секунд), и на основании этого выдает фразу типа &#8220;меньше суток назад&#8221; или &#8220;только что&#8221;. Даже есть поддержка будущего (&#8220;менее, чем через сутки&#8221; или &#8220;через пару минут&#8221;). Конечно, возвращается строчка на английском, для которой придется делать перевод и выводить результат через <code>__()</code>. Полный перечень возможных значений можно подсмотреть в исходном коде данного метода (не забудьте, что к строке добавляется префикс &#8216;<em>in </em>&#8216; или суффикс &#8216;<em> ago</em>&#8216;, в зависимости от того, наступило событие или еще нет).</li>
<li>Метод <code>DB::query($type, $sql)</code> предполагает передачу типа запроса (например &#8216;<em>select</em>&#8216;) первым параметром. Пусть Вас не смущает наличие констант <code>DB::SELECT</code>, <code>DB::INSERT</code>, <code>DB::UPDATE</code> и <code>DB::DELETE</code> &#8211; использовать можно любое значение, даже <strong>NULL</strong>. </li>
</ul>

<div class="bookmarkz"><a href="http://www.google.com/bookmarks/mark?op=add&bkmk=http://brotkin.ru/2009/11/11/do-you-know-2/&title=Ko3%3A+%D0%B7%D0%BD%D0%B0%D0%B5%D1%82%D0%B5+%D0%BB%D0%B8+%D0%B2%D1%8B%3F+%D0%A7%D0%B0%D1%81%D1%82%D1%8C+2+-+%D0%98%D0%B7%D1%83%D1%87%D0%B0%D0%B5%D0%BC+Web" rel="nofollow" target="_blank"><img src="http://brotkin.ru/wp-content/plugins/bookmarkz/images/google.png" border="0" width="16" height="16" alt="Google Bookmarks" title="Google Bookmarks"></a> <a href="http://digg.com/submit?url=http://brotkin.ru/2009/11/11/do-you-know-2/" rel="nofollow" target="_blank"><img src="http://brotkin.ru/wp-content/plugins/bookmarkz/images/digg.png" border="0" width="16" height="16" alt="Digg" title="Digg"></a> <a href="http://reddit.com/submit?url=http://brotkin.ru/2009/11/11/do-you-know-2/&title=Ko3%3A+%D0%B7%D0%BD%D0%B0%D0%B5%D1%82%D0%B5+%D0%BB%D0%B8+%D0%B2%D1%8B%3F+%D0%A7%D0%B0%D1%81%D1%82%D1%8C+2+-+%D0%98%D0%B7%D1%83%D1%87%D0%B0%D0%B5%D0%BC+Web" rel="nofollow" target="_blank"><img src="http://brotkin.ru/wp-content/plugins/bookmarkz/images/reddit.png" border="0" width="16" height="16" alt="Reddit" title="Reddit"></a> <a href="http://del.icio.us/post?url=http://brotkin.ru/2009/11/11/do-you-know-2/&title=Ko3%3A+%D0%B7%D0%BD%D0%B0%D0%B5%D1%82%D0%B5+%D0%BB%D0%B8+%D0%B2%D1%8B%3F+%D0%A7%D0%B0%D1%81%D1%82%D1%8C+2+-+%D0%98%D0%B7%D1%83%D1%87%D0%B0%D0%B5%D0%BC+Web" rel="nofollow" target="_blank"><img src="http://brotkin.ru/wp-content/plugins/bookmarkz/images/delicious.png" border="0" width="16" height="16" alt="del.icio.us" title="del.icio.us"></a> <a href="http://ma.gnolia.com/beta/bookmarklet/add?url=http://brotkin.ru/2009/11/11/do-you-know-2/&title=Ko3%3A+%D0%B7%D0%BD%D0%B0%D0%B5%D1%82%D0%B5+%D0%BB%D0%B8+%D0%B2%D1%8B%3F+%D0%A7%D0%B0%D1%81%D1%82%D1%8C+2+-+%D0%98%D0%B7%D1%83%D1%87%D0%B0%D0%B5%D0%BC+Web&description=Ko3%3A+%D0%B7%D0%BD%D0%B0%D0%B5%D1%82%D0%B5+%D0%BB%D0%B8+%D0%B2%D1%8B%3F+%D0%A7%D0%B0%D1%81%D1%82%D1%8C+2+-+%D0%98%D0%B7%D1%83%D1%87%D0%B0%D0%B5%D0%BC+Web" rel="nofollow" target="_blank"><img src="http://brotkin.ru/wp-content/plugins/bookmarkz/images/magnolia.png" border="0" width="16" height="16" alt="Ma.gnolia" title="Ma.gnolia"></a> <a href="http://www.technorati.com/faves?add=http://brotkin.ru/2009/11/11/do-you-know-2/" rel="nofollow" target="_blank"><img src="http://brotkin.ru/wp-content/plugins/bookmarkz/images/technorati.png" border="0" width="16" height="16" alt="Technorati" title="Technorati"></a> <a href="http://www.slashdot.org/bookmark.pl?url=http://brotkin.ru/2009/11/11/do-you-know-2/&title=Ko3%3A+%D0%B7%D0%BD%D0%B0%D0%B5%D1%82%D0%B5+%D0%BB%D0%B8+%D0%B2%D1%8B%3F+%D0%A7%D0%B0%D1%81%D1%82%D1%8C+2+-+%D0%98%D0%B7%D1%83%D1%87%D0%B0%D0%B5%D0%BC+Web" rel="nofollow" target="_blank"><img src="http://brotkin.ru/wp-content/plugins/bookmarkz/images/slashdot.png" border="0" width="16" height="16" alt="Slashdot" title="Slashdot"></a> <a href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://brotkin.ru/2009/11/11/do-you-know-2/&t=Ko3%3A+%D0%B7%D0%BD%D0%B0%D0%B5%D1%82%D0%B5+%D0%BB%D0%B8+%D0%B2%D1%8B%3F+%D0%A7%D0%B0%D1%81%D1%82%D1%8C+2+-+%D0%98%D0%B7%D1%83%D1%87%D0%B0%D0%B5%D0%BC+Web" rel="nofollow" target="_blank"><img src="http://brotkin.ru/wp-content/plugins/bookmarkz/images/yahoo.png" border="0" width="16" height="16" alt="Yahoo My Web" title="Yahoo My Web"></a> <a href="http://news2.ru/add_story.php?url=http://brotkin.ru/2009/11/11/do-you-know-2/" rel="nofollow" target="_blank"><img src="http://brotkin.ru/wp-content/plugins/bookmarkz/images/news2ru.png" border="0" width="16" height="16" alt="News2.ru" title="News2.ru"></a> <a href="http://www.bobrdobr.ru/addext.html?url=http://brotkin.ru/2009/11/11/do-you-know-2/&title=Ko3%3A+%D0%B7%D0%BD%D0%B0%D0%B5%D1%82%D0%B5+%D0%BB%D0%B8+%D0%B2%D1%8B%3F+%D0%A7%D0%B0%D1%81%D1%82%D1%8C+2+-+%D0%98%D0%B7%D1%83%D1%87%D0%B0%D0%B5%D0%BC+Web" rel="nofollow" target="_blank"><img src="http://brotkin.ru/wp-content/plugins/bookmarkz/images/bobrdobr.png" border="0" width="16" height="16" alt="БобрДобр.ru" title="БобрДобр.ru"></a> <a href="http://rumarkz.ru/bookmarks/?action=add&popup=1&address=http://brotkin.ru/2009/11/11/do-you-know-2/&title=Ko3%3A+%D0%B7%D0%BD%D0%B0%D0%B5%D1%82%D0%B5+%D0%BB%D0%B8+%D0%B2%D1%8B%3F+%D0%A7%D0%B0%D1%81%D1%82%D1%8C+2+-+%D0%98%D0%B7%D1%83%D1%87%D0%B0%D0%B5%D0%BC+Web" rel="nofollow" target="_blank"><img src="http://brotkin.ru/wp-content/plugins/bookmarkz/images/rumarkz.png" border="0" width="16" height="16" alt="RUmarkz" title="RUmarkz"></a> <a href="http://www.vaau.ru/submit/?action=step2&url=http://brotkin.ru/2009/11/11/do-you-know-2/" rel="nofollow" target="_blank"><img src="http://brotkin.ru/wp-content/plugins/bookmarkz/images/vaau.png" border="0" width="16" height="16" alt="Ваау!" title="Ваау!"></a> <a href="http://memori.ru/link/?sm=1&u_data[url]=http://brotkin.ru/2009/11/11/do-you-know-2/&u_data[name]=Ko3%3A+%D0%B7%D0%BD%D0%B0%D0%B5%D1%82%D0%B5+%D0%BB%D0%B8+%D0%B2%D1%8B%3F+%D0%A7%D0%B0%D1%81%D1%82%D1%8C+2+-+%D0%98%D0%B7%D1%83%D1%87%D0%B0%D0%B5%D0%BC+Web" rel="nofollow" target="_blank"><img src="http://brotkin.ru/wp-content/plugins/bookmarkz/images/memori.png" border="0" width="16" height="16" alt="Memori.ru" title="Memori.ru"></a> <a href="http://www.rucity.com/bookmarks.php?action=add&address=http://brotkin.ru/2009/11/11/do-you-know-2/&title=Ko3%3A+%D0%B7%D0%BD%D0%B0%D0%B5%D1%82%D0%B5+%D0%BB%D0%B8+%D0%B2%D1%8B%3F+%D0%A7%D0%B0%D1%81%D1%82%D1%8C+2+-+%D0%98%D0%B7%D1%83%D1%87%D0%B0%D0%B5%D0%BC+Web" rel="nofollow" target="_blank"><img src="http://brotkin.ru/wp-content/plugins/bookmarkz/images/rucity.png" border="0" width="16" height="16" alt="rucity.com" title="rucity.com"></a> <a href="http://moemesto.ru/post.php?url=http://brotkin.ru/2009/11/11/do-you-know-2/&title=Ko3%3A+%D0%B7%D0%BD%D0%B0%D0%B5%D1%82%D0%B5+%D0%BB%D0%B8+%D0%B2%D1%8B%3F+%D0%A7%D0%B0%D1%81%D1%82%D1%8C+2+-+%D0%98%D0%B7%D1%83%D1%87%D0%B0%D0%B5%D0%BC+Web" rel="nofollow" target="_blank"><img src="http://brotkin.ru/wp-content/plugins/bookmarkz/images/moemesto.png" border="0" width="16" height="16" alt="МоёМесто.ru" title="МоёМесто.ru"></a> <a href="http://www.mister-wong.ru/index.php?action=addurl&bm_url=http://brotkin.ru/2009/11/11/do-you-know-2/&bm_description=Ko3%3A+%D0%B7%D0%BD%D0%B0%D0%B5%D1%82%D0%B5+%D0%BB%D0%B8+%D0%B2%D1%8B%3F+%D0%A7%D0%B0%D1%81%D1%82%D1%8C+2+-+%D0%98%D0%B7%D1%83%D1%87%D0%B0%D0%B5%D0%BC+Web" rel="nofollow" target="_blank"><img src="http://brotkin.ru/wp-content/plugins/bookmarkz/images/mrwong.png" border="0" width="16" height="16" alt="Mister Wong" title="Mister Wong"></a> </div>
]]></content:encoded>
			<wfw:commentRss>http://brotkin.ru/2009/11/11/do-you-know-2/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Ko3: знаете ли вы? Часть 1</title>
		<link>http://brotkin.ru/2009/10/07/do-you-know-1/</link>
		<comments>http://brotkin.ru/2009/10/07/do-you-know-1/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 07:47:37 +0000</pubDate>
		<dc:creator>biakaveron</dc:creator>
				<category><![CDATA[знаете ли вы]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[db]]></category>
		<category><![CDATA[Kohana3]]></category>
		<category><![CDATA[ORM]]></category>

		<guid isPermaLink="false">http://brotkin.ru/?p=272</guid>
		<description><![CDATA[Иногда в голове мелькает мысль, &#8220;а ведь это неочевидно/полезно/любопытно&#8220;, но целый пост на эту тему писать бессмысленно. Поэтому буду периодически публиковать такие вот &#8220;выхлопы&#8221; с накопившимися заметками. Ниже &#8211; первая пачка из данной серии.

&#8220;Ленивая загрузка&#8221; в ORM позволяет делать дополнительную фильтрацию после обращения к &#8220;множественным&#8221; свойствам модели. Например, так мы отфильтруем неподтвержденные комментарии к записи [...]]]></description>
			<content:encoded><![CDATA[<p>Иногда в голове мелькает мысль, &#8220;<em>а ведь это неочевидно/полезно/любопытно</em>&#8220;, но целый пост на эту тему писать бессмысленно. Поэтому буду периодически публиковать такие вот &#8220;выхлопы&#8221; с накопившимися заметками. Ниже &#8211; первая пачка из данной серии.</p>
<ul>
<li>&#8220;Ленивая загрузка&#8221; в <strong>ORM</strong> позволяет делать дополнительную фильтрацию после обращения к &#8220;множественным&#8221; свойствам модели. Например, так мы отфильтруем неподтвержденные комментарии к записи в блоге, а также отберем только второй десяток из них:
<p><code></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$comments</span> <span style="color: #339933;">=</span> ORM<span style="color: #339933;">::</span><span style="color: #004000;">factory</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'blog'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">comments</span>
          <span style="color: #339933;">-&gt;</span><span style="color: #004000;">where</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'is_confirmed'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'='</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>
          <span style="color: #339933;">-&gt;</span><span style="color: #004000;">limit</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span>
          <span style="color: #339933;">-&gt;</span><span style="color: #004000;">offset</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span>
          <span style="color: #339933;">-&gt;</span><span style="color: #004000;">find_all</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p></code>На все это уйдет только один запрос, т.к. он теперь формируется только после явного вызова <code>find_all()</code>.</li>
<li>Так как библиотеки <strong>Input</strong> теперь нет, очищать данные от <strong>XSS</strong> придется самостоятельно (<code>Security::xss_clean()</code> вам в руки, можно добавить как фильтр в <strong>Validate</strong>). Автоматически <strong>Ko3</strong> лишь убирает лишние слэши (т.е. можем не думать о <strong>magic_quote_qpc</strong>) и все переводы строк приводит к единому виду (&#8220;<em>\n</em>&#8220;). Если надо обратиться к глобальной переменной, но есть сомнения в ее существовании, можно использовать метод <code>arr::get()</code>, он поддерживает установку значения по умолчанию. Например, так: <code>arr::get($_POST, 'text', '');</code></li>
<li>Список подключенных модулей может быть откорректирован в любой точке приложения. Метод <code>Kohana::modules($modules)</code> заново подключит все модули, указанные в массиве <code>$modules</code>. При этом ранее подключенные модули будут отброшены. Если вызвать метод без параметров, он вернет текущий список активных модулей. Таким образом, можно на лету подключить модуль X:<br />
<code>Kohana::modules(arr::merge(Kohana::modules(), array('x' => MODPATH.'x')))</code>. Пути для автозагрузки классов будут заново просчитаны, так что можно добиться изменения порядка активации модулей в списке (это играет роль при работе каскадной файловой системы <strong>Kohana</strong>).</p>
<blockquote><p>Насчет возможной двойной отработки файлов <em>init.php</em> не волнуйтесь &#8211; они подгружаются через <code>require_once()</code>. Тем не менее, сама по себе функция довольно затратная, не стоит ее вызывать бездумно.</p></blockquote>
</li>
<li>Можно кэшировать отдельные участки страницы с помощью класса <strong>Fragment</strong>:<br />
<code></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span> Fragment<span style="color: #339933;">::</span><span style="color: #004000;">load</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'some_page'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">echo</span> View<span style="color: #339933;">::</span><span style="color: #004000;">factory</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'some_page_view'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    Fragment<span style="color: #339933;">::</span><span style="color: #004000;">save</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p></code></p>
<p>В данном случае мы проверяем наличие кэшированной версии по ключу &#8216;<em>some_page</em>&#8216;, устанавливая срок актуальности (<em>lifetime</em>) в 100 секунд. Если фрагмент не найден, надо его отобразить и сразу добавить в кэш (метод <code>Fragment::save()</code>). Если же в кэше есть нужный нам кусок страницы, он отобразится автоматически. По умолчанию <em>lifetime</em> ставится на 30 секунд. Ах да, кэш &#8211; файловый, пока что нет библиотеки <strong>Cache</strong> а-ля <strong>Kohana v2.3.4</strong>.</li>
<li>Запросы на добавление записей (<em>INSERT</em>) возвращают массив (последний_сгенерированный_id, количество_вставленных_записей), а для редактирования (<em>UPDATE</em>) и удаления (<em>DELETE</em>) &#8211; только количество измененных/удаленных записей.</li>
</ul>

<div class="bookmarkz"><a href="http://www.google.com/bookmarks/mark?op=add&bkmk=http://brotkin.ru/2009/10/07/do-you-know-1/&title=Ko3%3A+%D0%B7%D0%BD%D0%B0%D0%B5%D1%82%D0%B5+%D0%BB%D0%B8+%D0%B2%D1%8B%3F+%D0%A7%D0%B0%D1%81%D1%82%D1%8C+1+-+%D0%98%D0%B7%D1%83%D1%87%D0%B0%D0%B5%D0%BC+Web" rel="nofollow" target="_blank"><img src="http://brotkin.ru/wp-content/plugins/bookmarkz/images/google.png" border="0" width="16" height="16" alt="Google Bookmarks" title="Google Bookmarks"></a> <a href="http://digg.com/submit?url=http://brotkin.ru/2009/10/07/do-you-know-1/" rel="nofollow" target="_blank"><img src="http://brotkin.ru/wp-content/plugins/bookmarkz/images/digg.png" border="0" width="16" height="16" alt="Digg" title="Digg"></a> <a href="http://reddit.com/submit?url=http://brotkin.ru/2009/10/07/do-you-know-1/&title=Ko3%3A+%D0%B7%D0%BD%D0%B0%D0%B5%D1%82%D0%B5+%D0%BB%D0%B8+%D0%B2%D1%8B%3F+%D0%A7%D0%B0%D1%81%D1%82%D1%8C+1+-+%D0%98%D0%B7%D1%83%D1%87%D0%B0%D0%B5%D0%BC+Web" rel="nofollow" target="_blank"><img src="http://brotkin.ru/wp-content/plugins/bookmarkz/images/reddit.png" border="0" width="16" height="16" alt="Reddit" title="Reddit"></a> <a href="http://del.icio.us/post?url=http://brotkin.ru/2009/10/07/do-you-know-1/&title=Ko3%3A+%D0%B7%D0%BD%D0%B0%D0%B5%D1%82%D0%B5+%D0%BB%D0%B8+%D0%B2%D1%8B%3F+%D0%A7%D0%B0%D1%81%D1%82%D1%8C+1+-+%D0%98%D0%B7%D1%83%D1%87%D0%B0%D0%B5%D0%BC+Web" rel="nofollow" target="_blank"><img src="http://brotkin.ru/wp-content/plugins/bookmarkz/images/delicious.png" border="0" width="16" height="16" alt="del.icio.us" title="del.icio.us"></a> <a href="http://ma.gnolia.com/beta/bookmarklet/add?url=http://brotkin.ru/2009/10/07/do-you-know-1/&title=Ko3%3A+%D0%B7%D0%BD%D0%B0%D0%B5%D1%82%D0%B5+%D0%BB%D0%B8+%D0%B2%D1%8B%3F+%D0%A7%D0%B0%D1%81%D1%82%D1%8C+1+-+%D0%98%D0%B7%D1%83%D1%87%D0%B0%D0%B5%D0%BC+Web&description=Ko3%3A+%D0%B7%D0%BD%D0%B0%D0%B5%D1%82%D0%B5+%D0%BB%D0%B8+%D0%B2%D1%8B%3F+%D0%A7%D0%B0%D1%81%D1%82%D1%8C+1+-+%D0%98%D0%B7%D1%83%D1%87%D0%B0%D0%B5%D0%BC+Web" rel="nofollow" target="_blank"><img src="http://brotkin.ru/wp-content/plugins/bookmarkz/images/magnolia.png" border="0" width="16" height="16" alt="Ma.gnolia" title="Ma.gnolia"></a> <a href="http://www.technorati.com/faves?add=http://brotkin.ru/2009/10/07/do-you-know-1/" rel="nofollow" target="_blank"><img src="http://brotkin.ru/wp-content/plugins/bookmarkz/images/technorati.png" border="0" width="16" height="16" alt="Technorati" title="Technorati"></a> <a href="http://www.slashdot.org/bookmark.pl?url=http://brotkin.ru/2009/10/07/do-you-know-1/&title=Ko3%3A+%D0%B7%D0%BD%D0%B0%D0%B5%D1%82%D0%B5+%D0%BB%D0%B8+%D0%B2%D1%8B%3F+%D0%A7%D0%B0%D1%81%D1%82%D1%8C+1+-+%D0%98%D0%B7%D1%83%D1%87%D0%B0%D0%B5%D0%BC+Web" rel="nofollow" target="_blank"><img src="http://brotkin.ru/wp-content/plugins/bookmarkz/images/slashdot.png" border="0" width="16" height="16" alt="Slashdot" title="Slashdot"></a> <a href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http://brotkin.ru/2009/10/07/do-you-know-1/&t=Ko3%3A+%D0%B7%D0%BD%D0%B0%D0%B5%D1%82%D0%B5+%D0%BB%D0%B8+%D0%B2%D1%8B%3F+%D0%A7%D0%B0%D1%81%D1%82%D1%8C+1+-+%D0%98%D0%B7%D1%83%D1%87%D0%B0%D0%B5%D0%BC+Web" rel="nofollow" target="_blank"><img src="http://brotkin.ru/wp-content/plugins/bookmarkz/images/yahoo.png" border="0" width="16" height="16" alt="Yahoo My Web" title="Yahoo My Web"></a> <a href="http://news2.ru/add_story.php?url=http://brotkin.ru/2009/10/07/do-you-know-1/" rel="nofollow" target="_blank"><img src="http://brotkin.ru/wp-content/plugins/bookmarkz/images/news2ru.png" border="0" width="16" height="16" alt="News2.ru" title="News2.ru"></a> <a href="http://www.bobrdobr.ru/addext.html?url=http://brotkin.ru/2009/10/07/do-you-know-1/&title=Ko3%3A+%D0%B7%D0%BD%D0%B0%D0%B5%D1%82%D0%B5+%D0%BB%D0%B8+%D0%B2%D1%8B%3F+%D0%A7%D0%B0%D1%81%D1%82%D1%8C+1+-+%D0%98%D0%B7%D1%83%D1%87%D0%B0%D0%B5%D0%BC+Web" rel="nofollow" target="_blank"><img src="http://brotkin.ru/wp-content/plugins/bookmarkz/images/bobrdobr.png" border="0" width="16" height="16" alt="БобрДобр.ru" title="БобрДобр.ru"></a> <a href="http://rumarkz.ru/bookmarks/?action=add&popup=1&address=http://brotkin.ru/2009/10/07/do-you-know-1/&title=Ko3%3A+%D0%B7%D0%BD%D0%B0%D0%B5%D1%82%D0%B5+%D0%BB%D0%B8+%D0%B2%D1%8B%3F+%D0%A7%D0%B0%D1%81%D1%82%D1%8C+1+-+%D0%98%D0%B7%D1%83%D1%87%D0%B0%D0%B5%D0%BC+Web" rel="nofollow" target="_blank"><img src="http://brotkin.ru/wp-content/plugins/bookmarkz/images/rumarkz.png" border="0" width="16" height="16" alt="RUmarkz" title="RUmarkz"></a> <a href="http://www.vaau.ru/submit/?action=step2&url=http://brotkin.ru/2009/10/07/do-you-know-1/" rel="nofollow" target="_blank"><img src="http://brotkin.ru/wp-content/plugins/bookmarkz/images/vaau.png" border="0" width="16" height="16" alt="Ваау!" title="Ваау!"></a> <a href="http://memori.ru/link/?sm=1&u_data[url]=http://brotkin.ru/2009/10/07/do-you-know-1/&u_data[name]=Ko3%3A+%D0%B7%D0%BD%D0%B0%D0%B5%D1%82%D0%B5+%D0%BB%D0%B8+%D0%B2%D1%8B%3F+%D0%A7%D0%B0%D1%81%D1%82%D1%8C+1+-+%D0%98%D0%B7%D1%83%D1%87%D0%B0%D0%B5%D0%BC+Web" rel="nofollow" target="_blank"><img src="http://brotkin.ru/wp-content/plugins/bookmarkz/images/memori.png" border="0" width="16" height="16" alt="Memori.ru" title="Memori.ru"></a> <a href="http://www.rucity.com/bookmarks.php?action=add&address=http://brotkin.ru/2009/10/07/do-you-know-1/&title=Ko3%3A+%D0%B7%D0%BD%D0%B0%D0%B5%D1%82%D0%B5+%D0%BB%D0%B8+%D0%B2%D1%8B%3F+%D0%A7%D0%B0%D1%81%D1%82%D1%8C+1+-+%D0%98%D0%B7%D1%83%D1%87%D0%B0%D0%B5%D0%BC+Web" rel="nofollow" target="_blank"><img src="http://brotkin.ru/wp-content/plugins/bookmarkz/images/rucity.png" border="0" width="16" height="16" alt="rucity.com" title="rucity.com"></a> <a href="http://moemesto.ru/post.php?url=http://brotkin.ru/2009/10/07/do-you-know-1/&title=Ko3%3A+%D0%B7%D0%BD%D0%B0%D0%B5%D1%82%D0%B5+%D0%BB%D0%B8+%D0%B2%D1%8B%3F+%D0%A7%D0%B0%D1%81%D1%82%D1%8C+1+-+%D0%98%D0%B7%D1%83%D1%87%D0%B0%D0%B5%D0%BC+Web" rel="nofollow" target="_blank"><img src="http://brotkin.ru/wp-content/plugins/bookmarkz/images/moemesto.png" border="0" width="16" height="16" alt="МоёМесто.ru" title="МоёМесто.ru"></a> <a href="http://www.mister-wong.ru/index.php?action=addurl&bm_url=http://brotkin.ru/2009/10/07/do-you-know-1/&bm_description=Ko3%3A+%D0%B7%D0%BD%D0%B0%D0%B5%D1%82%D0%B5+%D0%BB%D0%B8+%D0%B2%D1%8B%3F+%D0%A7%D0%B0%D1%81%D1%82%D1%8C+1+-+%D0%98%D0%B7%D1%83%D1%87%D0%B0%D0%B5%D0%BC+Web" rel="nofollow" target="_blank"><img src="http://brotkin.ru/wp-content/plugins/bookmarkz/images/mrwong.png" border="0" width="16" height="16" alt="Mister Wong" title="Mister Wong"></a> </div>
]]></content:encoded>
			<wfw:commentRss>http://brotkin.ru/2009/10/07/do-you-know-1/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

