ZF2 Session简单使用(Zend\Authentication\Storage\Session.php)

ZF2  Session 

第一次记录,用词不当或说法不正确,请留言!

在zf2中要简单使用session,你需要引入的文件:

use Zend\Authentication\Storage\Session as SessionStorage;

use后面的as相当于是别名,别名是我理解的,真正的说法是什么就不知道了!as不要也行,实例化的时候下面两者是等效的:

/*First one*/
$session = new Session();

/*Second one   SessionStorage是Session的别名*/
$session = new SessionStorage();

上面use引入的文件实际上就是  Zend\Authentication\Storage\Session.php 这个文件

当你使用这个类的时候,要实例化一个session类;

$session = new SessionStorage();

实例化的时候,你可以传入几个参数,构造函数如下:
    /**
     * Sets session storage options and initializes session namespace object
     *
     * @param  mixed $namespace
     * @param  mixed $member
     * @param  SessionManager $manager
     */
    public function __construct($namespace = null, $member = null, SessionManager $manager = null)
    {
        if ($namespace !== null) {
            $this->namespace = $namespace;
        }
        if ($member !== null) {
            $this->member = $member;
        }
        $this->session   = new SessionContainer($this->namespace, $manager);
    }


第一参数是命名空间:说白了就是在$_SESSION数组里面再嵌入一个数组 ,这个命名空间可以防止session变量名重复的情况;

第二个参数:这个参数将会赋值给$member这个protected属性  我贴一个结果:
Array
(
    [__ZF] => Array
        (
            [_REQUEST_ACCESS_TIME] => 1385702758.2296
        )

    [node] => Zend\Stdlib\ArrayObject Object
        (
            [storage:protected] => Array
                (
                    [storage] => {"30":"lrvp.backend.config.ajaxReboot","29":"lrvp.backend.config.ajaxGetStudio","28":"lrvp.backend.config.ajaxGetAddUserHtml","27":"lrvp.backend.config.ajaxDeleteUser","26":"lrvp.backend.config.ajaxUpdatePassword","25":"lrvp.backend.config.ajaxUpdateUser","24":"lrvp.backend.config.ajaxGetUser","23":"lrvp.backend.config.ajaxAddUser","22":"lrvp.backend.config.ajaxDbInit","21":"lrvp.backend.config.restoreDatabase","20":"lrvp.backend.config.backupDatabase","19":"lrvp.backend.config.upload","18":"lrvp.backend.config.ajaxGetTagList","17":"lrvp.backend.config.ajaxDeleteTag","16":"lrvp.backend.config.ajaxAddTag","15":"lrvp.backend.config.ajaxSetConfig","6":"lrvp.backend.config","33":"lrvp.backend.record.ajaxModeStatus","32":"lrvp.backend.record.ajaxUpdateRecord","31":"lrvp.backend.record.ajaxAddRecord","5":"lrvp.backend.record","14":"lrvp.backend.live.addRecord","4":"lrvp.backend.live","13":"lrvp.backend.video.mp4DownloadList","12":"lrvp.backend.video.ajaxGetRecordVideoPlayInfo","11":"lrvp.backend.video.AjaxVideoUpdate","10":"lrvp.backend.video.deleteComplete","9":"lrvp.backend.video.deleteChkAction","8":"lrvp.backend.video.AjaxPublishUpdate","7":"lrvp.backend.video.create","3":"lrvp.backend.video","2":"lrvp.backend","1":"lrvp"}
                )

            [flag:protected] => 2
            [iteratorClass:protected] => ArrayIterator
            [protectedProperties:protected] => 
        )

)


上面的结果我在实例化的时候,第一个参数传了node,其他的两个参数默认 ,(如果都不传的,他们都会使用其默认值);

node是一个数组,里面的[storage:protected]又是一个数组,再里面的[storage]这个值就是属性member的默认值 ( const MEMBER_DEFAULT = 'storage'; protected $namespace = self::NAMESPACE_DEFAULT;),这个键对应的值是本人传的,值是json串,如果你在实例化的时候传了第二个参数,这里相应的会变化;第三个参数:还没有用过,不大了解,希望了解的可以跟我普及一下,谢谢;


向session写值可以使用下面的方法:
$session->write($content);

这个函数会将 $content作为值member属性作为键,存入到session数组的你所申明的命名空间数组(对应结果中的node数组)中,上面贴的结果代码,我的命名空间就是 node

读取session中的:
$session->read();

使用上面的方法基本上可以存取session中的值
$session->read();

Session.php这个文件代码很短,总共才几个方法,还可以去看看其他别的方法,都是些很简单的方法,有时间去看看;







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值