를 사용하는 방법 젠\세션에 zf2?
-
13-11-2019 - |
문제
누군가 시 zf2?내가 이해할 수 없습의 새로운 메커니즘을 사용하여 세션에 zf2.나는 어떻게 쓰이고 읽기/에서 세션에 새로운 zend framework?
또한을 찾을 수 없습니다 예로 인터넷에서.
해결책
ZF2 세션 사용의 예 :
세션 생성 :
use Zend\Session\Container;
$session = new Container('base');
.
세션에서 키가 있는지 확인하십시오.
$session->offsetExists('email')
.
키로 세션에서 값 가져 오기 :
$email = $session->offsetGet('email');
.
세션의 설정 값 :
$session->offsetSet('email', $email);
.
세션에서 값을 풉니 다 :
$session->offsetUnset('email');
.
및 세션을 사용하는 다른 쉬운 방법은 다음과 같습니다.
$session = new Container('foo');
.
// 이들은 모두 동등한 의미로 동일한 종료
$session['bar'] = 'foobar';
$session->bar = 'foobar';
$session->offsetSet('bar', 'foobar');
. 다른 팁
확실히 그렇습니다,당신은 당 사용 젠\세션\컨테이너
컨테이너의 확장 ArrayObject 고 인스턴스화과 ARRAY_AS_PROPS
국기를 의미할 수 있습 쉽게 속성을 반복하고 읽기/쓰기들,예를 들어,
use Zend\Session\Container as SessionContainer;
$this->session = new SessionContainer('post_supply');
$this->session->ex = true;
var_dump($this->session->ex);
첫 번째 인자가 세 네임스페이스 및 두 번째 관리자. Manager
은 외관에 대한 Storage
고 SaveHandler
그것은 구성 ConfigInterface
을 저장하기 위해서 당신의 세션에서 데이터 DB 또는 Memcache 서버입니다.
현재 ZF2로 작업하고 있습니다.나는 세션의 사용을 발견했다 :
Zend\Authentication\Storage\Session.php
당신의 대답을 찾을 수 있습니다.
로그인 작업에서 세션을 사용하려고하면 다음을 사용할 수 있습니다. "generacodicicetagcode".그것은 사용자와 저장 세션도 인증합니다.
Zend\Authentication\AuthenticationService
가 세션을 저장합니다.
여기에 간단한 예입니다.나는 사용자의 성공적인 인증에 대한 세션 유지 보수에 대해 구현했습니다.
<?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');
}
?>
.
값 가져 오거나 사용자와 관련된 세션에 저장된 데이터 확인
<?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');
}
?>
.
이것은 누군가를 도울 수 있기를 바랍니다
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.
. 세션을 시작하려면 를 사용해야합니다.
zend\session\container
.