Skip to content

Smarty_CacheResource_Mysql

MySQL CacheResource CacheResource Implementation based on the Custom API to use MySQL as the storage resource for Smarty's output caching.

Table definition:

CREATE TABLE IF NOT EXISTS `output_cache` (
  `id` CHAR(40) NOT NULL COMMENT 'sha1 hash',
  `name` VARCHAR(250) NOT NULL,
  `cache_id` VARCHAR(250) NULL DEFAULT NULL,
  `compile_id` VARCHAR(250) NULL DEFAULT NULL,
  `modified` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `content` LONGTEXT NOT NULL,
  PRIMARY KEY (`id`),
  INDEX(`name`),
  INDEX(`cache_id`),
  INDEX(`compile_id`),
  INDEX(`modified`)
) ENGINE = InnoDB;

Properties

db

protected \PDO $db

fetch

protected \PDOStatement $fetch

fetchTimestamp

protected \PDOStatement $fetchTimestamp

save

protected \PDOStatement $save

Methods

__construct

Smarty_CacheResource_Mysql constructor.

public __construct(): mixed

Throws:


fetch

fetch cached content and its modification time from data source

protected fetch(string $id, string $name, string $cache_id, string $compile_id, string& $content, int& $mtime): void

Parameters:

Parameter Type Description
$id string unique cache content identifier
$name string template name
$cache_id string cache id
$compile_id string compile id
$content string cached content
$mtime int cache modification timestamp (epoch)

fetchTimestamp

Fetch cached content's modification timestamp from data source

protected fetchTimestamp(string $id, string $name, string $cache_id, string $compile_id): int|bool

Parameters:

Parameter Type Description
$id string unique cache content identifier
$name string template name
$cache_id string cache id
$compile_id string compile id

Return Value:

timestamp (epoch) the template was modified, or false if not found


save

Save content to cache

protected save(string $id, string $name, string $cache_id, string $compile_id, int|null $exp_time, string $content): bool

Parameters:

Parameter Type Description
$id string unique cache content identifier
$name string template name
$cache_id string cache id
$compile_id string compile id
$exp_time int|null seconds till expiration time in seconds or null
$content string content to cache

Return Value:

success


delete

Delete content from cache

protected delete(string $name, string $cache_id, string $compile_id, int|null $exp_time): int

Parameters:

Parameter Type Description
$name string template name
$cache_id string cache id
$compile_id string compile id
$exp_time int|null seconds till expiration or null

Return Value:

number of deleted caches


Inherited methods

populate

populate Cached Object with meta data from Resource

public populate(\Smarty_Template_Cached $cached, \Smarty_Internal_Template $_template): void

Parameters:

Parameter Type Description
$cached \Smarty_Template_Cached cached object
$_template \Smarty_Internal_Template template object

populateTimestamp

populate Cached Object with timestamp and exists from Resource

public populateTimestamp(\Smarty_Template_Cached $cached): void

Parameters:

Parameter Type Description
$cached \Smarty_Template_Cached

process

Read the cached template and process the header

public process(\Smarty_Internal_Template $_smarty_tpl, \Smarty_Template_Cached $cached = null, bool $update = false): bool

Parameters:

Parameter Type Description
$_smarty_tpl \Smarty_Internal_Template do not change variable name, is used by compiled template
$cached \Smarty_Template_Cached cached object
$update bool flag if called because cache update

Return Value:

true or false if the cached content does not exist


writeCachedContent

Write the rendered template output to cache

public writeCachedContent(\Smarty_Internal_Template $_template, string $content): bool

Parameters:

Parameter Type Description
$_template \Smarty_Internal_Template template object
$content string content to cache

Return Value:

success


readCachedContent

Read cached template from cache

public readCachedContent(\Smarty_Internal_Template $_template): string|bool

Parameters:

Parameter Type Description
$_template \Smarty_Internal_Template template object

Return Value:

content


getCachedContent

Return cached content

public getCachedContent(\Smarty_Internal_Template $_template): null|string

Parameters:

Parameter Type Description
$_template \Smarty_Internal_Template template object

clearAll

Empty cache

public clearAll(\Smarty $smarty, int $exp_time = null): int

Parameters:

Parameter Type Description
$smarty \Smarty Smarty object
$exp_time int expiration time (number of seconds, not timestamp)

Return Value:

number of cache files deleted


clear

Empty cache for a specific template

public clear(\Smarty $smarty, string $resource_name, string $cache_id, string $compile_id, int $exp_time): int

Parameters:

Parameter Type Description
$smarty \Smarty Smarty object
$resource_name string template name
$cache_id string cache id
$compile_id string compile id
$exp_time int expiration time (number of seconds, not timestamp)

Return Value:

number of cache files deleted

Throws:


locked

public locked(\Smarty $smarty, \Smarty_Template_Cached $cached): bool|null

Parameters:

Parameter Type Description
$smarty \Smarty
$cached \Smarty_Template_Cached

hasLock

Check is cache is locked for this template

public hasLock(\Smarty $smarty, \Smarty_Template_Cached $cached): bool

Parameters:

Parameter Type Description
$smarty \Smarty Smarty object
$cached \Smarty_Template_Cached cached object

Return Value:

true or false if cache is locked


acquireLock

Lock cache for this template

public acquireLock(\Smarty $smarty, \Smarty_Template_Cached $cached): bool|void

Parameters:

Parameter Type Description
$smarty \Smarty Smarty object
$cached \Smarty_Template_Cached cached object

releaseLock

Unlock cache for this template

public releaseLock(\Smarty $smarty, \Smarty_Template_Cached $cached): bool|void

Parameters:

Parameter Type Description
$smarty \Smarty Smarty object
$cached \Smarty_Template_Cached cached object

load

Load Cache Resource Handler

public static load(\Smarty $smarty, string $type = null): \Smarty_CacheResource
  • This method is static.

Parameters:

Parameter Type Description
$smarty \Smarty Smarty object
$type string name of the cache resource

Return Value:

Cache Resource Handler

Throws:


fetch

fetch cached content and its modification time from data source

protected fetch(string $id, string $name, string $cache_id, string $compile_id, string& $content, int& $mtime): void
  • This method is abstract.

Parameters:

Parameter Type Description
$id string unique cache content identifier
$name string template name
$cache_id string cache id
$compile_id string compile id
$content string cached content
$mtime int cache modification timestamp (epoch)

fetchTimestamp

Fetch cached content's modification timestamp from data source {@internal implementing this method is optional.

protected fetchTimestamp(string $id, string $name, string $cache_id, string $compile_id): int|bool

Only implement it if modification times can be accessed faster than loading the complete cached content.}}

Parameters:

Parameter Type Description
$id string unique cache content identifier
$name string template name
$cache_id string cache id
$compile_id string compile id

Return Value:

timestamp (epoch) the template was modified, or false if not found


save

Save content to cache

protected save(string $id, string $name, string $cache_id, string $compile_id, int|null $exp_time, string $content): bool
  • This method is abstract.

Parameters:

Parameter Type Description
$id string unique cache content identifier
$name string template name
$cache_id string cache id
$compile_id string compile id
$exp_time int|null seconds till expiration or null
$content string content to cache

Return Value:

success


delete

Delete content from cache

protected delete(string|null $name, string|null $cache_id, string|null $compile_id, int|null $exp_time): int
  • This method is abstract.

Parameters:

Parameter Type Description
$name string|null template name
$cache_id string|null cache id
$compile_id string|null compile id
$exp_time int|null seconds till expiration time in seconds or null

Return Value:

number of deleted caches



Automatically generated on 2025-03-18