Versucht jemand zf2? Ich kann den neuen Mechanismus zur Verwendung von Sitzungen in zf2 nicht verstehen. Wie kann ich in der Sitzung im neuen Zend-Framework schreiben und lesen?
Auch im Internet finde ich keine Beispiele.
rdo
Versucht jemand zf2? Ich kann den neuen Mechanismus zur Verwendung von Sitzungen in zf2 nicht verstehen. Wie kann ich in der Sitzung im neuen Zend-Framework schreiben und lesen?
Auch im Internet finde ich keine Beispiele.
rdo
Einige Beispiele für die Verwendung von zf2-Sitzungen:
Sitzungserstellung:
use Zend\Session\Container;
$session = new Container('base');
Überprüfen Sie, ob der Schlüssel in der Sitzung vorhanden ist:
$session->offsetExists('email')
Wert aus der Sitzung nach Schlüssel abrufen:
$email = $session->offsetGet('email');
Einstellwert in Sitzung:
$session->offsetSet('email', $email);
Wert in Sitzung zurücksetzen:
$session->offsetUnset('email');
Und andere einfache Möglichkeiten zur Verwendung von Sitzungen sind:
$session = new Container('foo');
// Dies sind alles gleichwertige Mittel zum selben Zweck
$session['bar'] = 'foobar';
$session->bar="foobar";
$session->offsetSet('bar', 'foobar');
Oh, bitte, verwenden Sie keine Methoden von ArrayAccess direkt. Das ist Bewegung. Zend\Session\Container
implementiert auch benutzerdefinierte ArrayObject Das bedeutet, dass Sie Eigenschaften wie bei Objekten festlegen, abrufen und überprüfen können. Siehe meine Antwort oben
– Dmitri
19. Juli 2013 um 17:23 Uhr
Im Falle eines Hinweises oder einer Warnung können Sie dies folgendermaßen verwenden: $session->offsetSet(‘admin’, new \stdClass()); Dann: $session->admin->username = ‘John’;
– Drk_alien
15. März 2016 um 11:36 Uhr
Dmitri
Definitiv ja, sollten Sie verwenden Zend\Session\Container
Container erstreckt sich von ArrayObject und instanziiert mit ARRAY_AS_PROPS
Flag, das bedeutet, dass Sie Eigenschaften einfach durchlaufen und lesen/schreiben können, z
use Zend\Session\Container as SessionContainer;
$this->session = new SessionContainer('post_supply');
$this->session->ex = true;
var_dump($this->session->ex);
Das erste Argument ist der Session-Namespace und das zweite — Manager. Manager
ist eine Fassade für Storage
und SaveHandler
und es ist mit konfiguriert ConfigInterface
um Ihre Sitzungsdaten im DB- oder Memcache-Server zu speichern.
Die Verwendung von Unterstrichen für geschützte Felder oder Methoden ist nicht mehr im Trend ;). Hauptsächlich, weil moderne IDEs die Praxis obsolet machen und der Unterstrich Dinge hässlich aussehen lässt.
– Markus
14. Dezember 2012 um 14:08 Uhr
Ich bin Zend-Anfänger. Ich möchte wissen, wie man SessionContainer in zf2 verwendet. Meiner Meinung nach sollte eine Webanwendung nur einen SessionContainer haben, richtig? Wie bekomme ich also den sessionContainer in den Controller und zeige ihn an?
– inza9hi
21. September 2013 um 8:06 Uhr
ohartl
Ich arbeite derzeit mit zf2. Ich habe die Verwendung von Sitzungen gefunden in:
Zend\Authentication\Storage\Session.php
Vielleicht findest du dort deine Antwort.
musafar006
Wenn Sie versuchen, Sitzung in Ihrer Anmeldeaktion zu verwenden, können Sie Folgendes verwenden: “Zend\Authentication\AuthenticationService
“. Es authentifiziert auch den Benutzer und die Speichersitzung.
getStorage()->write($contents)
speichert die Sitzung.
Nun, hier ist das kurze Beispiel. Ich habe die Aufrechterhaltung der Sitzung bei erfolgreicher Authentifizierung des Benutzers implementiert.
<?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');
}
?>
Abrufen von Werten oder Überprüfen von Daten, die in der Sitzung gespeichert sind und sich auf den Benutzer beziehen
<?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');
}
?>
hoffe das konnte jemandem helfen
Diese Antwort wurde am 11. Juli 2014 gepostet, nicht im Juli 2011.
– Leo Galleguillos
10. Juni 2016 um 2:17 Uhr
Hajis Hakkim
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.
Diese Antwort wurde am 11. Juli 2014 gepostet, nicht im Juli 2011.
– Leo Galleguillos
10. Juni 2016 um 2:17 Uhr
michaelbn
Um eine Sitzung zu starten, müssen Sie verwenden
zend\session\container
Hat diese Antwort wirklich geholfen? Was hast du am Ende gefunden?
– Benutzer153275
12. März 2012 um 23:34 Uhr
Ich habe ein Beispiel in Zend\Authentication\Storage\Session.php gefunden. Sie können beispielsweise so an eine Sitzung schreiben
$session->offsetSet('email', $email);
überprüfen Sie, ob das Feld so existiert$session->offsetExists('email')
und Get-Feld mit dieser Codeausführung:$session->offsetGet('email')
. Also, es ist das, was ich gesucht habe.– rd
13. März 2012 um 5:17 Uhr
Auch Sitzung kann durch gestartet werden
$session = new Container('base');
wo Container ist aZend\Session\Container
– rd
13. März 2012 um 5:25 Uhr
Ich weiß, dass diese Frage ein bisschen alt ist, aber diese Frage ist aufgrund von Suchmaschinen beliebt, also für diejenigen, die lesen, hier ist ein Artikel, den ich zu diesem Thema geschrieben habe. Es sollte gut für den Einstieg in die Sitzungen in ZF2 sein. encodingexplained.com/coding/php/zend-framework/…
– ba0708
27. Dezember 2012 um 14:32 Uhr