基本用法
在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);
|