views:

234

answers:

1

Ok, here's the problem:

$frontendOptions = array(
  'lifetime' => 7200,
  'debug_header' => true, // for debugging, but it doesn't work..
  regexps' => array(

         // Cache the static pages
         '^/pages/' => array('cache' => true),
     )
  );

$backendOptions = $config->cache->backOptions->toArray();

// getting a Zend_Cache_Frontend_Page object
require_once 'Zend/Cache.php';
$cache = Zend_Cache::factory('Page',
  $config->cache->backend,
  $frontendOptions,
  $backendOptions);

$cache->start();

This doesn't do anything at all. Page loading times are exactly the same and the folder indicated in $backendOptions is empty. What am I doing wrong?

By the way, $config->cache->backend reads "file".

+3  A: 

Well, following my tradition of answering my own questions, here comes the answer, and a subquestion, if anyone knows what's going on:

Basically, this thing doesn't work out of the box if you happen to run something more advanced than Hello World. I had a cookie set and since it found a cookie, it refused to do anything about it, so one hour digging in the caching code I discovered that the magic needed was simply to set

'cache_with_cookie_variables' => true,

And well, since all cookies are more or less unique and I don't really want to care about them, I set

'make_id_with_cookie_variables' => false

So now it works flawlessly.

Thanks to Chris and smoove for taking the time out and now in hindsight your comments made a lot of sense. Naturally though, I didn't have any errors or warnings and "File" was indeed spelled with uppercase.

What I wonder now is if I can send a spike to delete the proper cache file upon certain circumstances. I can hammer it (copy the ID generator in the cache and unset() the proper target), but there might be a fancier solution. If you have any idea, let me know.

John
your answer is valuable for the approachhttp://blog.astrumfutura.com/archives/381-Zend-Framework-Page-Caching-Part-2-Controller-Based-Cache-Management.html
se_pavel
Ooh.. That is a nice page.
John