Foros del Web » Programando para Internet » PHP » Zend »

Zend_Cache y Zend_Db_Table_Abstract

Estas en el tema de Zend_Cache y Zend_Db_Table_Abstract en el foro de Zend en Foros del Web. Que tal compañeros, estoy trabajando en una aplicación la cual en ocasiones tiene que realizar varias peticiones a la DB, pero me di cuenta que ...
  #1 (permalink)  
Antiguo 15/07/2010, 22:01
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 8 meses
Puntos: 406
Zend_Cache y Zend_Db_Table_Abstract

Que tal compañeros, estoy trabajando en una aplicación la cual en ocasiones tiene que realizar varias peticiones a la DB, pero me di cuenta que en cada petición Zend_Db_Table_Abstract realiza un "DESCRIBE" aun cuando ya se realizo una petición anterior, buscando en la documentación de Zend Framework he visto que Zend_Db_Table_Abstract puede cachear los metadatos de la tabla de la DB, siguiendo el ejemplo logre cachear los metadatos, PERO, mi problema es que hay que modificar cada modelo y agregar al método "construct" dicha configuración, ahora, mi aplicación es bastante compleja y tengo bastantes modelos, y no creo que sea tan "limpio" modificar manualmente todos los modelos, mi pregunta es, alguien sabe como se puede configurar Zend_Cache en el Bootstrap para cachear los metadatos de Zend_Db_Table_Abstract...

El método que utilizo es el siguiente
Código PHP:
Ver original
  1. class Model_MiModelo extends Zend_Db_Table_Abstract
  2. {
  3.         protected $_name = 'nombre_de_la_tabla';
  4.         protected $_primary = 'id';
  5.  
  6.         public function __construct() {
  7.             parent::__construct();
  8.  
  9.             $frontendOption = array(
  10.                 'automatic_serialization' => true
  11.             );
  12.  
  13.             $pathCache = APPLICATION_PATH.'/cache';
  14.            
  15.             $backendOption = array(
  16.                 'cache_dir'=>$pathCache
  17.             );
  18.  
  19.             $cache = Zend_Cache::factory('Core','File',$frontendOption, $backendOption);
  20.             Zend_Db_Table_Abstract::setDefaultMetadataCache($cache);
  21.         }
  22.          
  23.         //Otros métodos y demás código de la clase
  24. }

Agradezco cualquier comentario al respecto

Nota: Claramente utilizo la versión 1.10 de Zend Framework
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #2 (permalink)  
Antiguo 15/07/2010, 22:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Zend_Cache y Zend_Db_Table_Abstract

Claro coloca ese código tal cual en el Bootstrap y con eso se va a pasar al Abstract y así no lo tienes que poner en cada clase.

Por ejemplo yo lo tengo colocado así:
Código PHP:
Ver original
  1. protected function _initDbTableCache()
  2.     {
  3.         // Fronted cache options
  4.         $frontendOptions = array(
  5.            'lifetime' => 7200, // cache lifetime of 2 hours
  6.            'automatic_serialization' => true
  7.         );
  8.        
  9.         // Backend Cache Options
  10.         $backendOptions = array(
  11.             'cache_dir' => APPLICATION_PATH .'/../cache/' // Directory where to put the cache files
  12.         );
  13.        
  14.         // Zend_Cache object
  15.         $cache = Zend_Cache::factory('Core',
  16.                              'File',
  17.                              $frontendOptions,
  18.                              $backendOptions);
  19.         Zend_Db_Table_Abstract::setDefaultMetadataCache($cache);
  20.     }

Saludos.

Etiquetas: php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:39.