Utilisation de Zend_Cache

Logo Zend FrameworkComment utiliser la classe Zend_Cache au sein de Zend Framework ?

Dans cet exemple nous allons d’abord initialiser notre objet de cache dans le Bootstrap de l’application, puis écrire un test de cache dans un controller.

L’exemple suivant utilise l’extension APC, pour l’utiliser il faut installer le paquet php-apc.

Boostrap.php

protected function _initCache()
{
    // pas de cache pour l'environnement de test
    if (APPLICATION_ENV === 'production') {
        $caching = true;
    } else {
        $caching = false;
    }

    $frontendOptions = array(
        'lifetime'                => 3600 * 10,
        'automatic_serialization' => true,
        'caching'                 => $caching
    );

    $backendOptions = array(
        'cache_dir'   => APPLICATION_PATH . '/cache',
        'compression' => false
    );

    $cache = Zend_Cache::factory(
        'Core',
        'APC',
        $frontendOptions,
        $backendOptions
    );

    Zend_Registry::set('cache', $cache);
}

IndexController.php

public function indexAction()
{
    $cache = Zend_Registry::get('cache');
    //$cache->clean(Zend_Cache::CLEANING_MODE_ALL); // à décommenter pour nettoyer le cache

    $cache->save(
        array('test' => 'coucou', 'value' => 145),
        'idMonTest',
        array('tagA', 'tagB', 'tagC')
    );

    if (($data = $cache->load('idMonTest')) === false) {
        $data = array('test' => 'coucou', 'value' => 145);
        $cache->save($data);
    } else {
        echo 'cached !';
    }

    var_dump($data);
    $cache->remove('idMonTest');
    var_dump($cache->load('idMonTest'));
}
Share Button

Laisser un commentaire.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.