基本用法
在Zend Framework中,
每个 <?php
require_once 'Zend/Session/Namespace.php';
$myNamespace = new Zend_Session_Namespace('myNamespace');
// $myNamespace corresponds to $_SESSION['myNamespace']
$_SESSION的代码协同工作是可能的。然而,为避免问题,强烈建议这样的代码只使用$_SESSION中不和Zend_Session_Namespace的实例想对应的部分。
实例教程
在初始化Zend_Session时,如果没有指定命名空间,所有的数据将被透明地储存在 Example #1 页面浏览计数 <?php
require_once 'Zend/Session/Namespace.php';
$defaultNamespace = new Zend_Session_Namespace('Default');
if (isset($defaultNamespace->numberOfPageRequests)) {
$defaultNamespace->numberOfPageRequests++; // 每次页面加载,这个将递增
} else {
$defaultNamespace->numberOfPageRequests = 1; // 第一次
}
echo "Page requests this session: ", $defaultNamespace->numberOfPageRequests;
当多个模块使用
命名空间的名称被限定为字符序列,它表示为不以下划线(" Example #2 新方法: 使用命名空间避免冲突 <?php
require_once 'Zend/Session/Namespace.php';
// in the Zend_Auth component
$authNamespace = new Zend_Session_Namespace('Zend_Auth');
$authNamespace->user = "myusername";
// in a web services component
$webServiceNamespace = new Zend_Session_Namespace('Some_Web_Service');
$webServiceNamespace->user = "mywebusername";
上述例子中的代码与下面的代码有相同的效果,不过,上述例子中的会话对象把会话数据封装进了各自的命名空间。 Example #3 老方法: PHP会话访问 <?php
$_SESSION['Zend_Auth']['user'] = "myusername";
$_SESSION['Some_Web_Service']['user'] = "mywebusername";
迭代会话命名空间
Example #4 会话迭代 <?php
require_once 'Zend/Session/Namespace.php';
$aNamespace = new Zend_Session_Namespace('some_namespace_with_data_present');
foreach ($aNamespace as $index => $value) {
echo "aNamespace->$index = '$value';\n";
}
会话命名空间的访问器
Example #5 访问会话数据 <?php
require_once 'Zend/Session/Namespace.php';
$namespace = new Zend_Session_Namespace(); // 缺省的命名空间
$namespace->foo = 100;
echo "\$namespace->foo = $namespace->foo\n";
if (!isset($namespace->bar)) {
echo "\$namespace->bar not set\n";
}
unset($namespace->foo);
|