Кеширование страниц Zend похоже на smarty? - PullRequest
0 голосов
/ 14 марта 2010

Есть ли способ заставить zend_cache работать с интерфейсом, похожим на smarty? Я хотел бы сократить время загрузки, и кэширование страниц кажется наилучшим способом сделать это.

Также потребуется что-то похожее на {nocache}.

Хорошо, теперь у меня есть: Bootstrap.php

    protected function _initCache() {

    $this->bootstrap('locale');
    $locale = $this->getResource('locale');

    $front = array ( 'lifetime' => 1800,
    'automatic_serialization' => false,
    'caching' => true,
    'cache_id_prefix' => 'ec_',
    'debug_header' => true, 

    'default_options' 
        => array ('cache_with_get_variables' => true,
        'cache_with_post_variables' => false,
        'cache_with_session_variables' => false,
        'cache_with_cookie_variables' => false ),
    );

    $back = array('cache_dir' => '../data/Cache/'.$locale);

    $cache = Zend_Cache::factory('Page', 'File', $front, $back);
    $cache->start();
    Zend_Registry::set('cache', $cache);
    return $cache;
}

Тем не менее, единственный раз, когда мой кэш работает, с кодом вроде:

$cache = Zend_Registry::get('cache');

            if (!$data = $cache->load('sidebar_'.$module.'_'.$controller)) {
                $data['Studio']     = Eurocreme_Studio::load_by_type(array('type' => 'sidebar', 'from' => 0, 'to' => COUNT_HIGH));
                $data['Movie']      = Eurocreme_Movie::load_by_type(array('type' => 'sidebar', 'from' => 0, 'to' => 5));
                $data['Gallery']    = Eurocreme_Gallery::load_by_type(array('type' => 'sidebar', 'from' => 0, 'to' => 5));
                $data['Category']   = Eurocreme_Category::load_tree(0);
                $cache->save($data, 'my_view_helper_sidebar_'.$module.'_'.$controller);
            }

Я надеялся захватить все виды.

У кого-нибудь есть рабочие примеры того, как его полностью реализовать? Документы на самом деле не углубляются.

Ответы [ 2 ]

1 голос
/ 14 марта 2010

Вы можете использовать Zend_Cache_Frontend_Output или Zend_Cache_Frontend_Page. Из Zend Framework руководство :

Zend_Cache_Frontend_Output является интерфейсом захвата вывода. Он использует буферизацию вывода в PHP для захвата всего, что находится между его методами start () и end ().

Zend_Cache_Frontend_Page похоже на Zend_Cache_Frontend_Output, но предназначено для полной страницы.

0 голосов
/ 14 марта 2010

Вы, наверное, ищете Zend_Cache_Frontend_Page. Пожалуйста, обратитесь к Zend Cache документам для деталей.

...