Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 03-09-2008 15:39:39

bucheron
Membre
Date d'inscription: 30-05-2008
Messages: 138

Problème d'utilisation du Cache pour les classes objets

Hello tout le monde,

je suis en train de développer une application MVC. Pour des raisons de performance j'ai mis un système de cache en place.
Ce système utilise exclusivement le composant Zend_Cache_Frontend_Class de Zend.

Voila mon système:

Ma class: My_ClassCache

Code:

class My_ClassCache {
    
    /**
     * Singleton instance
     *
     */
    protected static $_cache = null;
    private static $frontend;
    private static $backend;
    private static $frontendOptions;
    private static $backendOptions;
    
    public static function init($frontend, $backend, $frontendOptions, $backendOptions){
        
        self::$frontend         = $frontend;
        self::$backend             = $backend;
        self::$frontendOptions     = $frontendOptions;
        self::$backendOptions     = $backendOptions;
        

    }
    
    public static function factory( $classInstance){
        self::$frontendOptions["cached_entity"] = $classInstance;
        return Zend_Cache::factory(self::$frontend, self::$backend, self::$frontendOptions, self::$backendOptions);
        
        
    }
    
}

initialisation dans le bootstrap:

Code:

...
//Mise en place d'un plugin de cache
$frontend             = "Class";
$backend              = "File";
$frontendOptions     = array(
                        "caching"    => $config->cache->activate,
                        "lifetime"    => $config->cache->lifetime
                    );
$backendOptions     = array( 'cache_dir' => '../cache/class/');

My_ClassCache::init($frontend, $backend, $frontendOptions, $backendOptions);
....

puis dans mon controlleur (un exemple):

Code:

           $cacheClass             = My_ClassCache::factory( new Jeux() );
           $cacheJeuxStatic     = My_ClassCache::factory( "Jeux" );

mais il y a un pb. Je pense que ce n'est pas dut à ma classe mais plus à la gestion des classes statiques

En fait j'ai l'impression que si j'appel un fonction comme ceci :

Code:

$cacheJeux->getListGame(array("nbDisplay" => 6));

ou

Code:

$cacheJeux->getListGame(array("nbDisplay" => 8));

le résultat n'est pas le même !!!
mais:

Code:

$cacheJeux->getListGame( 6 );

ou

Code:

$cacheJeux->getListGame( 8 );

sont différents.

Est ce que quelqu'un confirme ce que je dis, ou est ce que je crack complet.

J'ai l'impression qu'il faut que je rajoute une variable à ma fonction. Mais je trouve ça moyen.
quand pensez vous ?

Merci de votre aide et n'hésitez pas à me faire un petit feedback sur la classe que j'ai codé.

Dernière modification par bucheron (03-09-2008 15:50:40)

Hors ligne

 

#2 03-09-2008 16:45:43

Julien
Membre
Date d'inscription: 16-03-2007
Messages: 501

Re: Problème d'utilisation du Cache pour les classes objets

J'ai pas trop compris le problème, soit tu mets en cache ton objet, soit tu mets une chaine ; le tout étant d'être d'accord avec so-même au final ....
Zend_Memory est peut être plus adapté (selon la situation)

... et de mon coté j'aurai étendu Zend_Cache :-)

Hors ligne

 

#3 03-09-2008 17:35:28

bucheron
Membre
Date d'inscription: 30-05-2008
Messages: 138

Re: Problème d'utilisation du Cache pour les classes objets

en fait je crois que mon problème survient lorsque je cache une classe (le pb ne survient pas pour une classe statique).

Ma question est la suivante:
Est ce que le principe de cache sur les classe est la même chose que sur les classes statiques ?

Car en passant le constructeur à mon cache j'obtiens tout le temps les même réponses donc ça me parait bizarre!!!

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages