View file manual-ru/api.is.cached.html

File size: 5.71Kb
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>is_cached</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
<link rel="home" href="index.html" title="Руководство по Smarty">
<link rel="up" href="api.functions.html" title="Chapter 13. Методы класса Smarty">
<link rel="prev" href="api.get.template.vars.html" title="get_template_vars">
<link rel="next" href="api.load.filter.html" title="load_filter">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr><th colspan="3" align="center">is_cached</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="api.get.template.vars.html">Prev</a> </td>
<th width="60%" align="center">Chapter 13. Методы класса Smarty</th>
<td width="20%" align="right"> <a accesskey="n" href="api.load.filter.html">Next</a>
</td>
</tr>
</table>
<hr>
</div>
<div class="refentry" title="is_cached">
<a name="api.is.cached"></a><div class="titlepage"></div>
<div class="refnamediv">
<h2>Name</h2>
<p>is_cached</p>
</div>
<div class="refsect1">
<a name="id2721443"></a><h2></h2>
<code class="methodsynopsis"><span class="type">bool </span><span class="methodname">is_cached</span>(<span class="methodparam"><span class="type">string </span><span class="parameter">template</span></span>,<br>               <span class="methodparam"><span class="type">string </span><span class="parameter">cache_id</span></span>,<br>               <span class="methodparam"><span class="type">string </span><span class="parameter">compile_id</span></span>);</code><p>
  Возвращает true если существует кэш для указанного шаблона.
  Работает только в том случае, если значение <a class="link" href="variable.caching.html" title="$caching">caching</a> установлено в true.
	</p>
<div class="example">
<a name="id2721737"></a><p class="title"><b>Example 13.18. is_cached</b></p>
<div class="example-contents"><pre class="programlisting">

&lt;?php
$smarty-&gt;caching = true;

if(!$smarty-&gt;is_cached("index.tpl")) {
    // обращаемся к БД, назначаем переменные
}

$smarty-&gt;display("index.tpl");
?&gt;

  </pre></div>
</div>
<br class="example-break"><p>
  Также вы можете передавать cache id в качестве необязательного второго
  параметра, если у вас используется множественное кэширование шаблона.
 </p>
<p>
   Также вы можете передавать compile id в качестве необязательного третьего параметра.
   Если вы не передадите этот параметр, будет использован текущий
   <a class="link" href="variable.compile.id.html" title="$compile_id">$compile_id</a>.
  </p>
<p>
   Если вы не хотите передавать cache id, но хотите передать compile
   id, вы должны передать <code class="literal">null</code> в качестве cache id.
  </p>
<div class="example">
<a name="id2721805"></a><p class="title"><b>Example 13.19. is_cached при множественном кэшировании шаблона</b></p>
<div class="example-contents"><pre class="programlisting">

&lt;?php
$smarty-&gt;caching = true;

if(!$smarty-&gt;is_cached("index.tpl", "FrontPage")) {
    // обращаемся к БД, назначаем переменные
}

$smarty-&gt;display("index.tpl", "FrontPage");
?&gt;

  </pre></div>
</div>
<br class="example-break"><div class="note" title="Техническое замечание" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Техническое замечание</h3>
<p>
   Если <code class="literal">is_cached</code> возвращает true, при этом она загружает
   кэшированный вывод и хранит его в памяти. Любые последующие вызовы
   <a class="link" href="api.display.html" title="display()">display()</a> или
   <a class="link" href="api.fetch.html" title="fetch">fetch()</a>
   будут возвращать этот хранимый в памяти вывод и не будут пытаться перезагрузить
   файл кэша. Это предотвращает неприятную ситуацию, которая может возникнуть если
   другой процесс очищает кэш между вызовами is_cached и
   display в предыдущем примере. Это также означает, что
   <a class="link" href="api.clear.cache.html" title="clear_cache()">clear_cache()</a>
   и другие изменения настроек кэширования могут не вступить в силу после того, как
   <code class="literal">is_cached</code> вернула true.
  </p>
</div>
</div>
</div>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="api.get.template.vars.html">Prev</a> </td>
<td width="20%" align="center"><a accesskey="u" href="api.functions.html">Up</a></td>
<td width="40%" align="right"> <a accesskey="n" href="api.load.filter.html">Next</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">get_template_vars </td>
<td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td>
<td width="40%" align="right" valign="top"> load_filter</td>
</tr>
</table>
</div>
</body>
</html>