Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/08/2011, 03:11
Avatar de Uncontroled_Duck
Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 13 años
Puntos: 261
Zend_Session_Save_Handler en el application.ini

Buenas, pues estoy tratando de hacer que funcione el SessionSaveHandler desde el application.ini, pero algo se me escapa pues no funciona del todo bien, o como yo espero.

Lo tengo en el botstrap, que funciona perfectamente a falta de un par de cosas "que no me hacen caso". Pero requiere tener tambien otra configuración del Zend_Db. Que ya lo tengo en el .ini y para que tenerlo dos veces.

La configuracion del .ini la tengo igual que el del bootstrap, pero curiosamente, el del botstrap si funciona, y el del .ini no.

Solo es para ver si me podeís dar alguna sugerencia de como hacerlo funcionar en el .ini para no tener repetidas la configuración de la DB.

Gracias de antemano.
Saludos,

La config del Bootstrap.php
Código PHP:
Ver original
  1. protected function _initSessionSaveHandler()
  2.     {
  3.         $db = Zend_Db::factory('Pdo_Mysql', array(
  4.             'host'        =>'localhost',
  5.             'username'    => 'user',
  6.             'password'    => 'pass',
  7.             'dbname'    => 'name'
  8.         ));
  9.         Zend_Db_Table_Abstract::setDefaultAdapter($db);
  10.  
  11.         $config = array(
  12.         'name'                => 'Sessions',
  13.         // Esta por ejemplo no funciona, lo guarda en /Applications/MAMP/tmp/php
  14.         'save_path'           => APPLICATION_PATH . "/../sessions",
  15.         'primary'             => array(
  16.                                      'Session_ID',      
  17.                                      'save_path',      
  18.                                      'name',            
  19.                                ),
  20.         'primaryAssignment'   => array(        
  21.                                      'sessionId',        
  22.                                      'sessionSavePath',  
  23.                                      'sessionName',    
  24.                                ),
  25.         'modifiedColumn'      => 'modified',            
  26.         'dataColumn'          => 'Session_data',        
  27.         'lifetimeColumn'      => 'lifetime',            
  28.         );
  29.        
  30.         Zend_Session::setSaveHandler(new Zend_Session_SaveHandler_DbTable($config));
  31.         Zend_Session::start();
  32.     }

Y el application.ini
Código PHP:
Ver original
  1. ;-- Sessiones
  2.     resources.session.save_path = APPLICATION_PATH "/../sessions"
  3.     resources.session.use_only_cookies = false
  4.     resources.session.remember_me_seconds = 3600
  5.  
  6.     resources.session.saveHandler.class = "Zend_Session_SaveHandler_DbTable"
  7.     resources.session.saveHandler.options.name = "Sessions" ; Tabla
  8.  
  9.     resources.session.saveHandler.options.primary.session_id = "session_ID"
  10.     resources.session.saveHandler.options.primary.save_path = "save_path"
  11.     resources.session.saveHandler.options.primary.name = "name"
  12.  
  13.     resources.session.saveHandler.options.primaryAssignment.sessionId = "sessionId"
  14.     resources.session.saveHandler.options.primaryAssignment.sessionSavePath = "sessionSavePath"
  15.     resources.session.saveHandler.options.primaryAssignment.sessionName = "sessionName"
  16.  
  17.     resources.session.saveHandler.options.modifiedColumn = "modified"
  18.     resources.session.saveHandler.options.dataColumn = "Session_data"
  19.     resources.session.saveHandler.options.lifetimeColumn = "lifetime"

Los campos de la tabla
Código:
Session_ID
save_path
name
modified
lifetime
Session_data
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight