Documentation

Class Phalcon\Cache\Multiple

Source on GitHub

Allows to read to chained backends writing to multiple backends

<?php

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

   $ultraFastFrontend = new DataFrontend(array(
       "lifetime" => 3600
   ));

   $fastFrontend = new DataFrontend(array(
       "lifetime" => 86400
   ));

   $slowFrontend = new DataFrontend(array(
       "lifetime" => 604800
   ));

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

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

Methods

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

Phalcon\Cache\Multiple constructor

public Phalcon\Cache\Multiple push (Phalcon\Cache\BackendInterface $backend)

Adds a backend

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

Returns a cached content reading the internal backends

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

Starts every backend

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

Stores cached content into all backends and stops the frontend

public boolean delete (int|string $keyName)

Deletes a value from each backend

public boolean exists ([string $keyName], [long $lifetime])

Checks if cache exists in at least one backend