aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/smarty/smarty/docs/programmers/api-functions/api-is-cached.md
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/smarty/smarty/docs/programmers/api-functions/api-is-cached.md')
-rw-r--r--vendor/smarty/smarty/docs/programmers/api-functions/api-is-cached.md81
1 files changed, 81 insertions, 0 deletions
diff --git a/vendor/smarty/smarty/docs/programmers/api-functions/api-is-cached.md b/vendor/smarty/smarty/docs/programmers/api-functions/api-is-cached.md
new file mode 100644
index 000000000..0c41bf04a
--- /dev/null
+++ b/vendor/smarty/smarty/docs/programmers/api-functions/api-is-cached.md
@@ -0,0 +1,81 @@
+isCached()
+
+returns true if there is a valid cache for this template
+
+Description
+===========
+
+bool
+
+isCached
+
+string
+
+template
+
+string
+
+cache\_id
+
+string
+
+compile\_id
+
+- This only works if [`$caching`](#variable.caching) is set to one of
+ `Smarty::CACHING_LIFETIME_CURRENT` or
+ `Smarty::CACHING_LIFETIME_SAVED` to enable caching. See the [caching
+ section](#caching) for more info.
+
+- You can also pass a `$cache_id` as an optional second parameter in
+ case you want [multiple caches](#caching.multiple.caches) for the
+ given template.
+
+- You can supply a [`$compile id`](#variable.compile.id) as an
+ optional third parameter. If you omit that parameter the persistent
+ [`$compile_id`](#variable.compile.id) is used if its set.
+
+- If you do not want to pass a `$cache_id` but want to pass a
+ [`$compile_id`](#variable.compile.id) you have to pass NULL as a
+ `$cache_id`.
+
+> **Note**
+>
+> If `isCached()` returns TRUE it actually loads the cached output and
+> stores it internally. Any subsequent call to
+> [`display()`](#api.display) or [`fetch()`](#api.fetch) will return
+> this internally stored output and does not try to reload the cache
+> file. This prevents a race condition that may occur when a second
+> process clears the cache between the calls to `isCached()` and to
+> [`display()`](#api.display) in the example above. This also means
+> calls to [`clearCache()`](#api.clear.cache) and other changes of the
+> cache-settings may have no effect after `isCached()` returned TRUE.
+
+
+ <?php
+ $smarty->setCaching(Smarty::CACHING_LIFETIME_CURRENT);
+
+ if(!$smarty->isCached('index.tpl')) {
+ // do database calls, assign vars here
+ }
+
+ $smarty->display('index.tpl');
+ ?>
+
+
+
+
+ <?php
+ $smarty->setCaching(Smarty::CACHING_LIFETIME_CURRENT);
+
+ if(!$smarty->isCached('index.tpl', 'FrontPage')) {
+ // do database calls, assign vars here
+ }
+
+ $smarty->display('index.tpl', 'FrontPage');
+ ?>
+
+
+
+See also [`clearCache()`](#api.clear.cache),
+[`clearAllCache()`](#api.clear.all.cache), and [caching
+section](#caching).