Cache plugin
1Presentation
Temma can automatically manage the caching of pages generated by the Smarty view.
2Configuration
This plugin must be one of the very first pre-plugins in the execution chain.
Indeed, if the requested page is already cached, the plugin will return it and stop processing. There is therefore no point in running pre-plugins which would only be useful in the event that the page must be generated.
On the other hand, an authentication plugin used to verify that the user has the right to access the page (for example) must be placed before in the execution chain.
You will therefore need to add a directive in the etc/temma.php file (see the configuration documentation):
<?php
return [
'plugins' => [
// list of pre-plugins
'_pre' => [
'\Temma\Plugins\Cache'
]
]
];
3Advanced configuration
It is possible to define additional configuration parameters, specifying them in an extended configuration section:
<?php
return [
'plugins' => [
'_pre' => [
'\Temma\Plugins\Cache'
]
],
'x-cache' => [
// is used to define the data source (see "dateSources")
// by default, use the source named "cache"
'source' => 'memcache',
// list of strict URLs to cache
'url' => [
'/articles/list',
'/pages/presentation',
],
// list of URL prefixes to cache
'prefix' => [
'/documentation/',
'/legal/',
]
]
];
- source: Name of the data source to use for storing cached pages. If this value is not filled in, the plugin will look for a source named cache.
- url: List of strict URLs that can be cached. In this example, the pages /articles/list and /pages/presentation will be cached.
- prefix: List of URL prefixes that can be cached. In this example, all pages whose URL begins with /documentation/ or /legal/ will be cached.
When url and prefix directives are not set, all pages are likely to be cached.
4Template variable
When the plugin detects that the page that is being accessed can be cached, it sets a template variable _temmaCacheable, giving it the Boolean value of true. This variable will be used by the Smarty view, to cache the generated HTML code before sending it to the browser.
It is strongly recommended not to modify this value. However, you can access it in read mode.