php session zend-framework2

php - ¿Cómo usar Zend / Session en zf2?



zend-framework2 (7)

Actualmente estoy trabajando con zf2. Encontré uso de Sesiones en:

Zend/Authentication/Storage/Session.php

Quizás puedas encontrar tu respuesta allí.

¿Alguien prueba zf2? No puedo entender el nuevo mecanismo de uso de sesiones en zf2. ¿Cómo puedo escribir y leer desde / hacia la sesión en el nuevo Zend Framework?

Además, no puedo encontrar ningún ejemplo en internet.


Algunos ejemplos de uso de sesiones zf2:

Creación de la sesión:

use Zend/Session/Container; $session = new Container(''base'');

Verifique que la clave exista en la sesión:

$session->offsetExists(''email'')

Obtener valor de la sesión por clave:

$email = $session->offsetGet(''email'');

Establecer valor en la sesión:

$session->offsetSet(''email'', $email);

Desarreglo de valor en la sesión:

$session->offsetUnset(''email'');

Y otra manera fácil de usar la sesión son:

$session = new Container(''foo'');

// estos son todos medios equivalentes para el mismo fin

$session[''bar''] = ''foobar''; $session->bar = ''foobar''; $session->offsetSet(''bar'', ''foobar'');


Definitivamente sí, debes usar Zend / Session / Container

El contenedor se extiende de ArrayObject y ARRAY_AS_PROPS instancia con el indicador ARRAY_AS_PROPS , lo que significa que puede iterar fácilmente a través de las propiedades y leerlas / escribirlas, por ejemplo

use Zend/Session/Container as SessionContainer; $this->session = new SessionContainer(''post_supply''); $this->session->ex = true; var_dump($this->session->ex);

El primer argumento es el espacio de nombres de la sesión y el segundo: el administrador . Manager es una fachada para Storage y SaveHandler y está configurado con ConfigInterface para guardar sus datos de sesión en DB o en el servidor de Memcache.


Para comenzar una sesión necesitas usar

zend/session/container


Si intenta utilizar la sesión en su acción de inicio de sesión, puede utilizar: " Zend/Authentication/AuthenticationService ". También autentica el usuario y almacena la sesión.

getStorage()->write($contents) almacenará la sesión.


bien aquí está el breve ejemplo. he implementado con respecto al mantenimiento de la sesión sobre la autenticación exitosa del usuario.

<?php $registry = Zend_Registry::getInstance(); $DB = $registry[''DB'']; $authAdapter = new Zend_Auth_Adapter_DbTable($DB); $authAdapter->setTableName(''user''); $authAdapter->setIdentityColumn("user_name"); $authAdapter->setCredentialColumn("user_password"); //get values $username = $request->getParam(''username''); $password = $request->getParam(''password''); //set values $authAdapter->setIdentity($username); $authAdapter->setCredential($password); $auth = Zend_Auth::getInstance(); //to store in session $auth->setStorage(new Zend_Auth_Storage_Session(''front'')); $authResult = $auth->authenticate($authAdapter); if ($authResult->isValid()) { $authAdap = $authAdapter->getResultRowObject(null, "Password"); $auth->getStorage()->write($authAdap); $this->_redirect(''/login/controlpannel''); } else { $this->_redirect(''/login/login''); } ?>

obtener valores o verificar datos almacenados en sesión relacionada con el usuario

<?php $auth = Zend_Auth::getInstance(); $auth->setStorage(new Zend_Auth_Storage_Session(''front'')); if($auth->hasIdentity()){ $data = $auth->getStorage()->read(); print_r($data); }else{ $this->_redirect(''/login/login''); } ?>

Espero que esto pueda ayudar a alguien


use Zend/Session/Container; public function createAction(){ $session = new Container(''name''); $session->offsetSet(''session_variable'', $value); } //the above codes are used for create session. public function take_valuesAction(){ $session = new Container(''name''); echo $value = $session->offsetGet(''session_variable''); } //the above codes are used for take values from session. public function destroyAction(){ $session = new Container(''name''); $session->getManager()->destroy(); } //the above codes are used for destroy the session.