¿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?¿Cómo usar Zend Session en zf2?
También no puedo encontrar ningún ejemplo en Internet.
¿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?¿Cómo usar Zend Session en zf2?
También no puedo encontrar ningún ejemplo en Internet.
Algunos ejemplos de ZF2 uso de sesiones: la creación
Sesión:
use Zend\Session\Container;
$session = new Container('base');
Compruebe que la clave existe en la sesión:
$session->offsetExists('email')
valor Obtención de la sesión clave:
$email = $session->offsetGet('email');
Valor de ajuste en la sesión:
$session->offsetSet('email', $email);
valor desarmado en la sesión:
$session->offsetUnset('email');
Y otra manera fácil de utilizar de sesión son:
$session = new Container('foo');
// estos son un ll medio equivalente, para el mismo fin
$session['bar'] = 'foobar';
$session->bar = 'foobar';
$session->offsetSet('bar', 'foobar');
Ah, por favor, no use los métodos de ** ArrayAccess ** directamente. Esto es moveton 'Zend \ Session \ Container' también implementa ** ArrayObject ** personalizado, lo que significa que puede establecer, obtener y verificar propiedades como lo hace con el objeto. Ver mi respuesta arriba – dVaffection
En caso de Aviso o Advertencia, puede usar esto como: $ session-> offsetSet ('admin', new \ stdClass()); Luego: $ session-> admin-> username = 'John'; –
Actualmente estoy trabajando con zf2. He encontrado el uso de Sesiones en:
Zend\Authentication\Storage\Session.php
Tal vez usted puede encontrar su respuesta allí.
Para iniciar una sesión es necesario utilizar
zend\session\container
Definitivamente sí, se debe utilizar Zend \ Session \ Container
de contenedores se extiende de ArrayObject y crea una instancia con ARRAY_AS_PROPS
bandera que significa que se puede recorrer fácilmente a través de las propiedades y leer/escribirlos, por ejemplo
use Zend\Session\Container as SessionContainer;
$this->session = new SessionContainer('post_supply');
$this->session->ex = true;
var_dump($this->session->ex);
primer argumento es sesión de espacio de nombres y segundos - Gestor. Manager
es una fachada para Storage
y SaveHandler
y está configurado con ConfigInterface
para guardar sus datos de sesión en el servidor de base de datos o Memcache.
El uso de guiones bajos para campos o métodos protegidos ya no está de moda;). Principalmente porque los IDEs modernos hacen que la práctica sea obsoleta y el subrayado hace que las cosas se vean feas. – markus
2 markus-tharkun Sí, lo sé y ya no lo uso;) – dVaffection
Soy un principiante de zend. Quiero saber cómo usar SessionContainer en zf2. En mi opinión, una aplicación web debería tener solo una sesiónContainer, ¿verdad? Entonces, ¿cómo obtener la sesiónContainer en el controlador y ver? – inza9hi
Si está intentando 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');
}
?>
conseguir valores o comprobar los datos almacenados en la sesión de usuario relacionados con
<?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');
}
?>
esperanza que esto podría ayudar a alguien
Esta respuesta se publicó el 11 de julio de 2014, no en julio de 2011. –
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.
¿Esa respuesta realmente ayuda? ¿Qué acabaste encontrando? –
Encontré un ejemplo en Zend \ Authentication \ Storage \ Session.php. Por ejemplo, puede escribir en una sesión como esta '$ session-> offsetSet ('email', $ email);', compruebe que existe archivo así '' session-> offsetExists ('email') 'y obtenga el campo con este código ejecución: '$ session-> offsetGet ('email')'. Entonces, es eso lo que estaba buscando. – rdo
También la sesión se puede iniciar por '$ session = new Container ('base');' donde container es 'Zend \ Session \ Container' – rdo