Ya estoy aquí otra vez con el zend, ahora mi problema son las sesiones y las variables de sesiones. He estado echando un vistazo a otros temas en el foro [URL="http://www.forosdelweb.com/f68/consulta-zend-sesiones-522468/"]como en este[/URL] pero aún no he conseguido resolverlo en mi página.
1. Para iniciar la sesión tengo que poner Zend_Session::start(); pero dónde?
- En el Bootstrap?
Código PHP:
protected function _initSession()
{
Zend_Session::start();
}
- En el Controller?
Código PHP:
public function Init()
{
Zend_Session::start();
}
2. la siguiente línea es la del namespace que es para crear la variable de sesion o para recuperarla, no? La coloco también en el init de todos los controladores en los que voy a usarla?
Código PHP:
public function Init()
{
Zend_Session::start();
$idioma = new Zend_Session_Namespace('id_idiomas');
}
3. Para dar valor a las variables creo que no tengo problemas(pongo el namespace aqui, pero en realidad solo le coloco en un sitio, o aqui o en el init)
Código PHP:
public function indexAction()
{
$idioma = new Zend_Session_Namespace('id_idiomas');
if(isset($idioma->id) && !empty($idioma->id))
{
$idioma->id = $idioma->id; // viva la redundancia XD
}
else
{
$idioma->id = 1;
}
$this->view->numidioma = $idioma->id;
}
4. Ahora si quiero visualizar o usar la variable de sesion en otra función o en otro controlador no sé si es que pierdo la sesion o no está bien guardada la variable, pero no aparece.
Código PHP:
public function caracteristicasAction()
{
$idioma = new Zend_Session_Namespace('id_idiomas');
$this->view->idioma_id = $idioma->id;
}
Quizá mis métodos no sean los más adecuados, pero así es como me han dicho de hacerlo.