Files
smarty/docs/ru/programmers/api-functions/api-is-cached.xml
2008-05-25 15:06:11 +00:00

107 lines
4.0 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: 0 Maintainer: tony2001 Status: ready -->
<refentry id="api.is.cached">
<refnamediv>
<refname>is_cached</refname>
<refpurpose></refpurpose>
</refnamediv>
<refsect1>
<title />
<methodsynopsis>
<type>bool</type><methodname>is_cached</methodname>
<methodparam><type>string</type><parameter>template</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>cache_id</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>compile_id</parameter></methodparam>
</methodsynopsis>
<para>
Возвращает true если существует кэш для указанного шаблона.
Работает только в том случае, если значение <link
linkend="variable.caching">caching</link> установлено в true.
</para>
<example>
<title>is_cached</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->caching = true;
if(!$smarty->is_cached("index.tpl")) {
// обращаемся к БД, назначаем переменные
}
$smarty->display("index.tpl");
?>
]]>
</programlisting>
</example>
<para>
Также вы можете передавать cache id в качестве необязательного второго
параметра, если у вас используется множественное кэширование шаблона.
</para>
<para>
Также вы можете передавать compile id в качестве необязательного третьего параметра.
Если вы не передадите этот параметр, будет использован текущий
<link linkend="variable.compile.id">$compile_id</link>.
</para>
<para>
Если вы не хотите передавать cache id, но хотите передать compile
id, вы должны передать <literal>null</literal> в качестве cache id.
</para>
<example>
<title>is_cached при множественном кэшировании шаблона</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->caching = true;
if(!$smarty->is_cached("index.tpl", "FrontPage")) {
// обращаемся к БД, назначаем переменные
}
$smarty->display("index.tpl", "FrontPage");
?>
]]>
</programlisting>
</example>
<note>
<title>Техническое замечание</title>
<para>
Если <literal>is_cached</literal> возвращает true, при этом она загружает
кэшированный вывод и хранит его в памяти. Любые последующие вызовы
<link linkend="api.display">display()</link> или
<link linkend="api.fetch">fetch()</link>
будут возвращать этот хранимый в памяти вывод и не будут пытаться перезагрузить
файл кэша. Это предотвращает неприятную ситуацию, которая может возникнуть если
другой процесс очищает кэш между вызовами is_cached и
display в предыдущем примере. Это также означает, что
<link linkend="api.clear.cache">clear_cache()</link>
и другие изменения настроек кэширования могут не вступить в силу после того, как
<literal>is_cached</literal> вернула true.
</para>
</note>
</refsect1>
</refentry>
<!-- 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
-->