Zend_Cache to cache an object

June 18, 2009

Image for Zend_Cache to cache an object from unsplash.com

Here's how to cache an object using Zend_Cache:

<?php
$cache_frontend_options = array(
            'lifetime' => 3600, // cache lifetime of 1 hour
            'automatic_serialization' => false
        );

$cache_backend_options = array(
            'servers' => array(
            array('host' => 'localhost', 'port' => 11211, 'persistent' => true)
            ),
            'compression' => false
        );

$cache = Zend_Cache::factory('Core', 'Memcached',
                $cache_frontend_options, $cache_backend_options);

$key = 'myUniqueId-123';
$cache_object = $cache->load($key);

 if ($cache_object === false) {
   // not in cache
    $object = new myObject();
    $cache->save(serialize($object), $key);
} else {
    // in cache
    $object = unserialize($cache_object);
}

Note: The reason that "automatic_serialization" is set to false and then I manually serialize and unserialize is that "automatic_serialization" didn't work.