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.