README.textile
April 22, 2022 ยท View on GitHub
h1. rah_memcached
"Download":https://github.com/gocom/rah_memcached/releases | "Packagist":https://packagist.org/packages/rah/rah_memcached | "Issues":https://github.com/gocom/rah_memcached/issues
A plugin for "Textpattern CMS":https://textpattern.com that stores parts of your templates in "Memcached":https://memcached.org/, a distributed in-memory key-value caching system.
h2. Install
Using "Composer":https://getcomposer.org:
bc. $ composer require rah/rah_memcached
Or "download":https://github.com/gocom/rah_memcached/releases an installer package.
h2. Basics
The plugin, rah_memcached, introduces a new container tag to Textpattern's arsenal. The tag stores the wrapped content, and "variables":https://docs.textpattern.com/tags/variable set within it, in Memcached's in-memory storage.
bc. rah::memcached <txp:variable name="variable1" value="value" /> <txp:article_custom limit="200"> <txp:title /> </txp:article_custom> </rah::memcached>
On subsequent calls the resulting output markup and variables will be loaded from memory, skipping template parsing and code execution, speeding up your site and alleviating database load.
h2. Requirements
- Textpattern >= 4.7.0.
- PHP >= 8.1.0.
- "Memcached":https://secure.php.net/manual/en/book.memcached.php PHP extension.
- "libmemcached":https://libmemcached.org/ client library.
- "Memcached":https://memcached.org/ server.
h2. Configuration
Connected server can be configured through Textpattern's @textpattern/config.php@ file:
bc. define('RAH_MEMCACHED_HOST', 'localhost'); define('RAH_MEMCACHED_PORT', 11211);
h2. Attributes
bc. rah::memcached ...contained statement... </rah::memcached>
The tag is a container and attributes for it follow.
name Sets a name, a key, for the cached item. The given name is used identify the item, and save and fetch it from the storage. If a name is not defined, it's automatically created by hashing the given contained markup. While the name is optional, giving it is more efficient and avoids any potential hash collisions. Default: undefined Example: @name="mykey"@
expires Time in seconds it takes to the stored item to expire and be refreshed. If zero (@0@), the cache is kept in memory until the cache is flushed or Memcached is restarted. Default: @0@ Example: @expires="3600"@
persist If enabled, ignores content updates as set by site's @lastmod@ timestamp. By default, the cache is invalidated when Texptatern's lastmod timestamp is updated, which is done when any content is updated. Default: disabled Example: @persist@
h2. Examples
h3. Store section navigation in memory
bc. <rah::memcached name="navigation"> <txp:section_list wraptag="ul" break="li"> <txp:section /> </txp:section_list> </rah::memcached>
h3. Store variables in memory
bc.. rah::memcached <txp:variable name="color" value="red" /> <txp:variable name="size" value="small" /> </rah::memcached>
Color: <txp:variable name="color" /> Size: <txp:variable name="size" />
h2. Changelog
h3. Version 0.3.0 - 2022/04/22
- Fixes PHP >= 8.1 compatibility.
- Now requires PHP >= 8.1.
h3. Version 0.2.0 - 2022/04/17
- Register the tag for Textpattern >= 4.7.0 compatibility.
- Replaced @lastmod@ attribute with @persist@.
- Now requires PHP >= 7.2.0.
- Now requires Textpattern >= 4.7.0.
h3. Version 0.1.0 - 2014/03/19
- Initial release.