Включить плагин Cache для ZFDebug - PullRequest
0 голосов
/ 29 декабря 2011

Я разрабатываю сайт с Zend Framework и хочу использовать ZFDebug.
Я следовал инструкциям по установке, описанным здесь , но я не инициализирую Zend_Cache в загрузчикеопределить настройки менеджера кэша в разделе файла конфигурации).
Итак, мой раздел начальной загрузки для ZFDebug выглядит примерно так:

if ($this->hasPluginResource("cachemanager")) {
    $this->bootstrap("cachemanager");
    $cache = $this->getPluginResource("cachemanager")->getCacheManager()->getCache("default");
    $options["plugins"]["Cache"] = array("backend" => $cache->getBackend());
}
$debug = new ZFDebug_Controller_Plugin_Debug($options);

С этим кодом ZFDebug показывает пункт «Кэш» в меню, ноне кликабелен.Что я должен сделать, чтобы ZFDebug показывал информацию о кеше?Я использую Xcache в качестве бэкэнда Zend_Cache.

1 Ответ

0 голосов
/ 27 января 2012

Я только начал играть с ZFDebug этим утром, но мой Boostrap.php инициализирует кеш и сначала регистрирует его.В _initZFDebug я вызываю реестр, чтобы получить кеш.

protected function _initCache()
{
    $frontendOptions = array(
        'lifetime' => 3600*24*5, // cache lifetime of 5 days
        'automatic_serialization' => true,
        'logging' => false,
        'caching' => true
    );

    $backendOptions = array(
        'cache_dir' => './../data/cache/', // Directory where to put the cache files
        'hashed_directory_level' => 2
    );

    $flickrFrontendOptions = array(
        'lifetime' => 3600*24*5, // cache lifetime of 5 days
        'automatic_serialization' => true,
        'logging' => false,
        'caching' => true
    );

    $flickrBackendOptions = array(
        'cache_dir' => './../data/flickr/', // Directory where to put the cache files
        'hashed_directory_level' => 2
    );

    // getting a Zend_Cache_Core object
    $cache = Zend_Cache::factory(
        'Core',
        'File',
        $frontendOptions,
        $backendOptions);
    Zend_Registry::set('cache', $cache);

    $flickrcache = Zend_Cache::factory(
        'Core',
        'File',
        $flickrFrontendOptions,
        $flickrBackendOptions);
    Zend_Registry::set('flickrcache', $flickrcache);
}

protected function _initZFDebug()
{
    if ($this->hasOption('zfdebug'))
    {
        $autoloader = Zend_Loader_Autoloader::getInstance();
        $autoloader->registerNamespace('ZFDebug');

        $options = array(
            'plugins' => array('Variables', 
                               'Database' => array('adapter' => $db), 
                               'File' => array('basePath' => $this->hasOption('zfdebug.basePath')),
                               'Cache' => array('backend' => Zend_Registry::get('cache')->getBackend()), 
                               'Exception')
        );
        $debug = new ZFDebug_Controller_Plugin_Debug($options);

        $this->bootstrap('frontController');
        $frontController = $this->getResource('frontController');
        $frontController->registerPlugin($debug);
    }
}
...