Files
smarty/docs/ja/programmers/caching/caching-groups.xml
2007-04-21 12:13:34 +00:00

110 lines
4.5 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 1.7 Maintainer: takagi Status: ready -->
<!-- CREDITS: mat-sh,daichi,joe -->
<sect1 id="caching.groups">
<title>キャッシュのグループ</title>
<para>
<parameter>$cache_id</parameter> のグループを設定する事で、
より複雑なグループにする事が出来ます。これは <parameter>$cache_id</parameter>
の値の中の <literal>|</literal> によって各サブグループに分けられる事で実現できます。
サブグループはいくらでも持つ事が出来ます。
</para>
<itemizedlist>
<listitem><para>
ディレクトリ階層のようなキャッシュグループを考える事が出来ます。
例えば <literal>'a|b|c'</literal> というキャッシュグループは、
<literal>'/a/b/c/'</literal> というディレクトリ構造だと考えられます。
</para></listitem>
<listitem><para>
<literal>clear_cache(null,'a|b|c')</literal>
はファイル <literal>'/a/b/c/*'</literal> を、
<literal>clear_cache(null,'a|b')</literal> はファイル
<literal>'/a/b/*'</literal> を削除するのに似ています。
</para></listitem>
<listitem><para>
<link linkend="variable.compile.id"><parameter>$compile_id</parameter></link>
<literal>clear_cache(null,'a|b','foo')</literal> のように指定すると、
それをキャッシュグループに追加して
<literal>'/a/b/c/foo/'</literal> として扱います。
</para></listitem>
<listitem><para>
テンプレート名を
<literal>clear_cache('foo.tpl','a|b|c')</literal> のように指定すると、
Smarty は <literal>'/a/b/c/foo.tpl'</literal> を削除しようと試みます。
</para></listitem>
<listitem><para>
また、<literal>'/a/b/*/foo.tpl'</literal> のように、
複数のキャッシュグループの下でテンプレート名を指定して削除する事は出来ません。
キャッシュグループは左から右へ向かう順序でのみグループ化を定義できます。
グループとしてそれらをクリアするためには、
単一のキャッシュグループ階層の下でテンプレートをグループ化する必要があります。
</para></listitem>
</itemizedlist>
<para>
キャッシュのグループ化はテンプレートディレクトリ階層によって混乱させられるべきではなく、
テンプレートがどのような構造なのかも知り得ません。例えば、
<filename>themes/blue/index.tpl</filename> のようなテンプレート構造があり、
<quote>blue</quote> テーマのキャッシュファイルを全てクリアしたい時、
テンプレートファイル構造をまねた
<literal>display('themes/blue/index.tpl','themes|blue')</literal>
のような キャッシュグループ構造を作成する必要があり、それならば
<literal>clear_cache(null,'themes|blue')</literal>
によってキャッシュをクリアする事が出来ます。
</para>
<example>
<title>$cache_id groups</title>
<programlisting role="php">
<![CDATA[
<?php
require('Smarty.class.php');
$smarty = new Smarty;
$smarty->caching = true;
// はじめのつのcache_idグループが"sports|basketball"のキャッシュを全てクリアします。
$smarty->clear_cache(null,'sports|basketball');
// はじめのcache_idグループが"sports"のキャッシュを全てクリアします。
// これは"sports|basketball"又は"sports|(anything)|(anything)|(anything)|..."を用いてインクルードされたものでしょう。
$smarty->clear_cache(null,'sports');
// cache_id として"sports|basketball"を用いてfoo.tpl のキャッシュファイルをクリアします。
$smarty->clear_cache('foo.tpl','sports|basketball');
$smarty->display('index.tpl','sports|basketball');
?>
]]>
</programlisting>
</example>
</sect1>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->