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

[SOLUCIONADO] Leer sesión en el bootstrap

Estas en el tema de Leer sesión en el bootstrap en el foro de Zend en Foros del Web. Hola, estoy teniendo un problema para obtener la sesión en el bootstrap; estoy haciendo lo siguiente: Código PHP: protected function  _initDoctrine () {                           $config  = new  ...
  #1 (permalink)  
Antiguo 09/05/2013, 15:42
 
Fecha de Ingreso: julio-2008
Ubicación: México
Mensajes: 150
Antigüedad: 16 años, 4 meses
Puntos: 4
Leer sesión en el bootstrap

Hola, estoy teniendo un problema para obtener la sesión en el bootstrap; estoy haciendo lo siguiente:

Código PHP:
protected function _initDoctrine()
{                
         
$config = new Zend_Config_Ini(APPLICATION_PATH.'/configs/application.ini',
                              
null,
                              array(
'skipExtends'        => true,
                                    
'allowModifications' => true));
        if(isset(
$_POST['elegirBd']) && $_POST['elegirBd']==1)
        {
            
$config->production->doctrine->dsn="mysql://espacios_user:espacios.2013.db@localhost/espacios_db_test";
    
        }
        else
        {
                         
//Al parecer aqui está el problema
            
$usuario = new Zend_Session_Namespace("Usuario");

            if(
$usuario->bd==1)
                
$config->production->doctrine->dsn="mysql://espacios_user:espacios.2013.db@localhost/espacios_db_test";
            else
                
$config->production->doctrine->dsn="mysql://espacios_user:espacios.2013.db@localhost/espacios_db";
        }


El tema es que la primer vez que se ejecuta este segmento de código obtengo el siguiente error:

Error #2 Class __PHP_Incomplete_Class has no unserializer Array' in /var/www/espacios/library/Zend/Session.php:482

Pero cuando actualizo la página se quita el error e incluso la variable $usuario->bd es evaluada correctamente.

Ojalá alguien me pueda dar un norte de lo que está sucediendo.

Gracias!
__________________
Blog blog.desarrollandoideas.com

Twitter
Sígueme en Twitter
  #2 (permalink)  
Antiguo 09/05/2013, 15:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Leer sesión en el bootstrap

Por regla general, el Bootstrap no es para tomar decisiones ni mucho menos, eso se hace ya cuando se levanta tu aplicación o en un controller plugin.

Ahora todo eso que haces no es correcto, (leer $_POST) la sesión no esta disponible en el bootstrap porque es una tarea que se hace antes de que toda la aplicación se levante.

Lo mejor es que lo hagas en un plugin, para que cambies la base de datos de Doctrine, si usas la integración de Guillermo Blanco te permite fácilmente seleccionar el DSN que quieras y solo das de alta toda la información en el .ini.

Saludos.
  #3 (permalink)  
Antiguo 09/05/2013, 15:49
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Leer sesión en el bootstrap

Pirmero, estas inicializando la session en el bootstrap ?, segundo, lo que estas haciendo lejos esta de ser una buena practica, si necesitas acceder al request deberías crear un front controller plugin

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #4 (permalink)  
Antiguo 09/05/2013, 15:53
 
Fecha de Ingreso: julio-2008
Ubicación: México
Mensajes: 150
Antigüedad: 16 años, 4 meses
Puntos: 4
Respuesta: Leer sesión en el bootstrap

Cita:
Iniciado por GatorV Ver Mensaje
Por regla general, el Bootstrap no es para tomar decisiones ni mucho menos, eso se hace ya cuando se levanta tu aplicación o en un controller plugin.

Ahora todo eso que haces no es correcto, (leer $_POST) la sesión no esta disponible en el bootstrap porque es una tarea que se hace antes de que toda la aplicación se levante.

Lo mejor es que lo hagas en un plugin, para que cambies la base de datos de Doctrine, si usas la integración de Guillermo Blanco te permite fácilmente seleccionar el DSN que quieras y solo das de alta toda la información en el .ini.

Saludos.
El problema es que la integración de Guillermo Blanco es para Doctrine 2, y la versión de php en el servidor no me da para poder utilizar esa versión de Doctrine.

El tema del plugin me parece que podría ser una opción; pero dado que desde lo que yo entiendo primero se ejecuta el boostrap y luego el plugin; entonces tendría que cambiar la manera en que integré Doctrine y no se que tantas dificultades podría suponer esto cuando tengo un avance de mas del 95% del sistema que desarrollé.

Que otra opción podría tener al respecto?

Gracias!
__________________
Blog blog.desarrollandoideas.com

Twitter
Sígueme en Twitter
  #5 (permalink)  
Antiguo 09/05/2013, 16:36
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Leer sesión en el bootstrap

Pues no le veo de mucho, esas tareas simplemente no las debes de hacer en el Bootstrap, deben de ir en el Plugin porque es cuando ya tienes acceso a todo el environment.

Etiquetas: bootstrap, php, sesión, sql
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 08:35.