Я пытаюсь использовать Zend_Cache_Frontend_Function
для кеширования некоторых моих собственных вызовов функций.
Кеш настроен так:
$manager = new Zend_Cache_Manager();
$frontendOptions = array(
'lifetime' => intval(CACHELIFETIME),
'automatic_serialization' => true);
$backendOptions = array('cache_dir' => CACHEDIR);
$funcCache = Zend_Cache::factory('Function',
'File',
$frontendOptions,
$backendOptions);
$manager->setCache('function', $funcCache);
Затем я использую кеш так:
$country_name = "UK";
$country_id = 1;
$country = new Default_Db_Table_Country();
$country = $cache->call(array($country, "getCountryByName"), array($country_name, $id));
Даже после многократного вызова этой функции функция getCountryByName()
все еще вызывается и в ней выполняется запрос к базе данных.
Правильно ли я использую это?Как я могу остановить вызов getCountryByName()
, происходящий несколько раз?
Спасибо
Редактировать:
Глядя на источник, кажется, что call()
использует буферизацию вывода, если это так, то мои функции ничего не выводят, они только возвращают объекты.Таким образом, делая Zend_Cache_Frontend_Function
бесполезным в этом случае?