Question

Quelqu'un essaie-t-il ZF2? Je ne peux pas comprendre un nouveau mécanisme d'utilisation des sessions dans ZF2. Comment puis-je écrire et lire sur / depuis la session dans New Zend Framework?

Je ne trouve pas non plus d'exemples sur Internet.

Était-ce utile?

La solution

Quelques exemples d'utilisation des sessions ZF2:

Création de session:

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

Vérifiez que la clé existe en session:

$session->offsetExists('email')

Obtenir de la valeur de la session par clé:

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

Définition de la valeur en session:

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

Valeur non net dans la session:

$session->offsetUnset('email');

Et une autre façon facile d'utiliser la session est:

$session = new Container('foo');

// Ce sont tous des moyens équivalents au même extrémité

$session['bar'] = 'foobar';

$session->bar = 'foobar';

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

Autres conseils

Certainement oui, vous devriez utiliser Zend session conteneur

Conteneur étend de ArrayObject et instancie avec ARRAY_AS_PROPS Flag cela signifie que vous pouvez facilement itéré à travers les propriétés et les lire / les écrire, par exemple

use Zend\Session\Container as SessionContainer;

$this->session = new SessionContainer('post_supply');
$this->session->ex = true;
var_dump($this->session->ex);

Le premier argument est l'espace de noms de session et le deuxième - Gestionnaire. Manager est une façade pour Storage et SaveHandler Et il est configuré avec ConfigInterface Afin de enregistrer vos données de session dans DB ou Memcache Server.

Je travaille actuellement avec ZF2. J'ai trouvé l'utilisation de sessions dans:

Zend\Authentication\Storage\Session.php

Vous pouvez peut-être y trouver votre réponse.

Si vous essayez d'utiliser la session dans votre action de connexion, vous pouvez utiliser: "Zend\Authentication\AuthenticationService". Il authentifie également l'utilisateur et le magasin.

getStorage()->write($contents) stockera la session.

Eh bien, voici le bref exemple. J'ai mis en œuvre concernant le maintien de la session sur l'authentification réussie de l'utilisateur.

<?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');
}
?>

Obtenir des valeurs ou vérifier les données stockées en session liées à l'utilisateur

<?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');
 }
?>

J'espère que cela pourrait aider quelqu'un

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.

Pour démarrer une session, vous devez utiliser

zend\session\container
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top