2013-06-14 5 views
1

Я использую Doctrine 1.2 с Zend Framework 1.Zend Cache file

У меня много контроллеров, и я оставил боковую панель и правую боковую панель внутри своего макета, и у меня есть посетители и пользователи аутентификации в течение активной сессии.

Я сделал основной метод кэширования, как:

$frontend= array('lifetime' => 3600); 

$backend= array('cache_dir' => '/data/cache/FileName'); 

$cache = Zend_Cache::factory('core', 'File', $frontend, $backend); 

if ((!$result = $cache->load('fileName'))) { 
    /* my code here*/ 
    $cache->save($page, 'fileName'); 
} else { 
    $this->_helper->viewRenderer->setNoRender(); 
    $this->getResponse()->appendBody($result); 
} 

Но каждый раз, когда мне нужно кассовая страницу в контроллерах Повторяет этот код в контроллере, так что я хотел бы создать помощник, чтобы управлять своими наличными для всех случаи и сценарии с набором таких параметров, как (имя файла, время жизни, вход в систему пользователя и т. д.) и обналичивание файлов из макета, таких как левая боковая панель, и возможность удаления денежных файлов. , поэтому я вызываю методы только с моих контроллеров и обрабатываю их с одного места.

Каков наилучший способ создания этого вспомогательного метода кэширования в рамках Zend, и если у вас есть какие-либо примеры , пожалуйста, помогите мне и предоставите мне лучший способ его создания.

Спасибо.

ответ

0

Вам действительно нужно кэшировать страницы, почему бы просто не кешировать дорогие данные?

В Zend Framework 1, плагины загружаются на каждый контроллер, ZF1 Custom Plugins

или использовать помощники действий лишь в определенных местах ZF1 Action Helpers

+0

спасибо Я постараюсь ваше решение –

2

вы можете использовать Zend_Cache_Frontend_Page и начать кэширование в вашем Зенд bootstrap.php.

как:

$frontendOptions = array(
        'lifetime' => '604800000', 
        'content_type_memorization' => false, 
        'default_options' => array(
         'cache' => true, 
         'make_id_with_cookie_variables' => false, 
         'make_id_with_session_variables' => false, 
         'cache_with_get_variables' => true, 
         'cache_with_post_variables' => true, 
         'cache_with_session_variables' => true, 
         'cache_with_files_variables' => true, 
         'cache_with_cookie_variables' => true, 
        ), 
        'regexps' => array(
         '$' => array('cache' => true), 
        ) 
       ); 

       $backendOptions = array('cache_dir' => $yourDirectoryPath); 
       $cache = Zend_Cache::factory('Page', 'File', $frontendOptions, $backendOptions); 
       $cache->start(); 

Следуйте учебник с Zend Cache вручную

http://framework.zend.com/manual/1.12/en/zend.cache.theory.html

Смежные вопросы