有人尝试zf2吗?我无法理解在 zf2 中使用会话的新机制。如何在新的 zend 框架中写入和读取会话?
我也无法在互联网上找到任何示例。
有人尝试zf2吗?我无法理解在 zf2 中使用会话的新机制。如何在新的 zend 框架中写入和读取会话?
我也无法在互联网上找到任何示例。
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');
绝对是的,你应该使用Zend\Session\Container
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。Manager
是一个门面Storage
,SaveHandler
它被配置ConfigInterface
为将你的会话数据保存在 DB 或 Memcache 服务器中。
我目前正在使用 zf2。我在以下位置找到了 Sessions 的用法:
Zend\Authentication\Storage\Session.php
也许你可以在那里找到你的答案。
如果您尝试在登录操作中使用会话,则可以使用:“ Zend\Authentication\AuthenticationService
”。它还验证用户和存储会话。
getStorage()->write($contents)
将存储会话。
这是一个简短的例子。我已经实施了关于维护用户成功认证的会话。
<?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