fall back to disk caching if memcache can't connect $memcache = new Memcache; if ($memcache->connect('localhost', 11211)) { Minify::setCache(new Minify_Cache_Memcache($memcache)); } else { Minify::setCache(); }
function test_Minify_Cache_Memcache()
{
    $prefix = 'Minify_Cache_Memcache : ';
    $thisFileActive = __FILE__ === realpath($_SERVER['SCRIPT_FILENAME']);
    if (!function_exists('memcache_set')) {
        if ($thisFileActive) {
            echo "      {$prefix}To test this component, install memcache in PHP\n";
        }
        return;
    }
    $mc = new Memcache();
    if (!@$mc->connect('localhost', 11211)) {
        if ($thisFileActive) {
            echo "      {$prefix}Memcache server not found on localhost:11211\n";
        }
        return;
    }
    $data = str_repeat(md5(time()) . 'í', 100);
    // 3400 bytes in UTF-8
    $id = 'Minify_test_memcache';
    $cache = new Minify_Cache_Memcache($mc);
    assertTrue(true === $cache->store($id, $data), $prefix . 'store');
    assertTrue(countBytes($data) === $cache->getSize($id), $prefix . 'getSize');
    assertTrue(true === $cache->isValid($id, $_SERVER['REQUEST_TIME'] - 10), $prefix . 'isValid');
    ob_start();
    $cache->display($id);
    $displayed = ob_get_contents();
    ob_end_clean();
    assertTrue($data === $displayed, $prefix . 'display');
    assertTrue($data === $cache->fetch($id), $prefix . 'fetch');
    if (function_exists('gzencode')) {
        $data = gzencode($data);
        $id .= ".gz";
        $cache->store($id, $data);
        assertTrue($data === $cache->fetch($id), $prefix . 'store/fetch gzencoded string');
    }
}
function test_Minify_Cache_Memcache()
{
    $prefix = 'Minify_Cache_Memcache : ';
    if (!function_exists('memcache_set')) {
        return;
    }
    $mc = new Memcache();
    if (!@$mc->connect('localhost', 11211)) {
        return;
    }
    $data = str_repeat(md5('testing'), 160);
    $id = 'Minify_test_cache';
    $cache = new Minify_Cache_Memcache($mc);
    assertTrue(true === $cache->store($id, $data), $prefix . 'store');
    assertTrue(strlen($data) === $cache->getSize($id), $prefix . 'getSize');
    assertTrue(true === $cache->isValid($id, $_SERVER['REQUEST_TIME'] - 10), $prefix . 'isValid');
    ob_start();
    $cache->display($id);
    $displayed = ob_get_contents();
    ob_end_clean();
    assertTrue($data === $displayed, $prefix . 'display');
    assertTrue($data === $cache->fetch($id), $prefix . 'fetch');
}