Table Of Contents

Previous topic

< Class Phalcon\Cache\Frontend\Output

Next topic

Class Phalcon\Cli\Console >

This Page

Class Phalcon\Cache\Multiple

Source on GitHub

Allows to read to chained backend adapters writing to multiple backends


use Phalcon\Cache\Frontend\Data as DataFrontend;
use Phalcon\Cache\Multiple;
use Phalcon\Cache\Backend\Apc as ApcCache;
use Phalcon\Cache\Backend\Memcache as MemcacheCache;
use Phalcon\Cache\Backend\File as FileCache;

$ultraFastFrontend = new DataFrontend(
        "lifetime" => 3600,

$fastFrontend = new DataFrontend(
        "lifetime" => 86400,

$slowFrontend = new DataFrontend(
        "lifetime" => 604800,

//Backends are registered from the fastest to the slower
$cache = new Multiple(
        new ApcCache(
                "prefix" => "cache",
        new MemcacheCache(
                "prefix" => "cache",
                "host"   => "localhost",
                "port"   => "11211",
        new FileCache(
                "prefix"   => "cache",
                "cacheDir" => "../app/cache/",

//Save, saves in every backend
$cache->save("my-key", $data);


public __construct ([Phalcon\Cache\BackendInterface[] $backends])

Phalcon\Cache\Multiple constructor

public push (Phalcon\Cache\BackendInterface $backend)

Adds a backend

public mixed get (string | int $keyName, [int $lifetime])

Returns a cached content reading the internal backends

public start (string | int $keyName, [int $lifetime])

Starts every backend

public save ([string $keyName], [string $content], [int $lifetime], [boolean $stopBuffer])

Stores cached content into all backends and stops the frontend

public boolean delete (string | int $keyName)

Deletes a value from each backend

public exists ([string | int $keyName], [int $lifetime])

Checks if cache exists in at least one backend

public flush ()

Flush all backend(s)

Follow along: