Zend_Cache Core e lentezza MVC

Salve a tutti,

avrei un problema nella gestione della cache in un'applicazione mvc.

Quando un'applicazione lo permette uso il Frontend Page con un notevole guadagno di prestazioni sopratutto se come Backend posso usare APC invece dei files. Alcune applicazioni, però, non si adattano bene al Frontend Page, basta infatti una parte del sito particolarmente dinamica o semplicemente dedicata al singolo utente che mettere in cache tutta la pagina porta ad ovvi problemi.

Avrei deciso quindi di usare il frontend Core e selezionare le parti da mettere in cache manualmente.

Per quanto riguarda la mia parte (moduli, controller, modelli, form, ecc.) non ci sono problemi, ma per quanto riguarda tutta la parte mvc (che è oggettivamente almeno il 60% dell'applicazione) non ho idea di come sfruttare la cache.

Non ho trovato metodi per impostare una cache nel front controller, vista o layout (come invece è possibile fare per esempio con Zend_Db_Table).

Ho provato a mettere in cache direttamente l'oggetto Zend_Controller_Front ma inutilmente visto che viene richiamato da alcuni componenti tramite il factory method scavalcando di fatto l'oggetto che tiro fuori dalla cache (almeno che non ci sia un modo per settare la proprietà $_instance e permettere al factory method di restituire il mio oggetto...).

In conclusione, avete qualche idea per migliorare la parte mvc tramite cache?

inviato 6 anni fa
Aft3rlif3
X 0 X

Scusate, fate un replace di factory method con singleton  :-[

risposto 6 anni fa
Aft3rlif3
X 0 X

Sono riuscito a mettere in cache il front controller estendendo la classe Zend_Controller_Front così:

class New_Controller_Front extends Zend_Controller_Front
{
   /**
    * Set singleton instance
    */
   public static function setInstance($instance = null)
   {
      self::$_instance = $instance;
   }
}

In questo modo dopo aver recuperato l'oggetto dalla cache si può riscrivere l'istanza così:

New_Controller_Front::setInstance($Front_Controller_Cache);

Ma il miglioramento è di 2/3 centesimi di secondo su quasi 3 decimi totali per un semplice "hello world" (sul mio pc chiaramente).

Tutto fa ma non mi sembra un grande miglioramento, non so se provare anche con zend_view e zend_config ecc. e risparmiare un'altra manciata di centesimi perchè non mi piace dover estendere tutte queste classi per aggirare il singleton (nello zf 2.0 potrebbe non esserci neanche più).

Spero sempre in una soluzione alternativa  :)

risposto 6 anni fa
Aft3rlif3
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda