首页 > 代码库 > 《deetom》项目开发历程<三>

《deetom》项目开发历程<三>

昨天开始写,用户密码修改,把原来的登录 注册调整了下。中间有些细节。

封装获取session中用户信息的方法的时候,我犹豫了很久。

class IndexBaseController extends Comm{    protected $userInfo;    //session 判断 前置函数    public function init()    {        $session = $this->instance(‘Session‘);        $userInfo = $session->get(‘index_userInfo‘);        if(empty($userInfo)){            $this->redirect(‘/Login/login‘);        }else{
        //这个if我犹豫了
if($this->userInfo != $userInfo){ $this->userInfo = &$userInfo; } } }}

实际上我对PHP 垃圾回收机制还是不清晰,我不知道userInfo什么时候会被回收、 一开始直接 $this->userInfo = &$userInfo;

写完后我在想这意味着什么?

我在担心,是不是每次都会申请$userInfo的内存。现在一想,我还只是猜:我才在INIT方法中的$userInfo 应该在栈内存申请一块地址,并且方法执行完之后就会被回收,而$session的这块内存,应该在堆并且,这个内存的回收估计和他的失效时间有关系,而protected $userInfo;也应该在对内存中申请了一块内存,而每次 我都是把session内存地址,赋值给了它,所其实应该对内存的开销不会大。

 

后面由于修改密码的时候,要变更session的用户信息,所以session会发生变化,所以做了个简单的判断。

我希望我这个分析是正确的。

还有个js细节

    function dt_confirm(){        var r=confirm("密码修改成功,是否重新登录")        if (r==true){            window.location.href = "http://www.mamicode.com/<?php echo $this->getBaseUrl(); ?>/Login/loginOut";        }        else{            return true;        }    }

这个跳转如果路径木有http://的话,将是根据当前路径 和传的参数,重构URL 拼接。

 

今天上午的故事全发生在svn上面了

 

 

尝试过的手段:

clean up 

删除后 重新check out

本地svn客户端 clean up 

update

都于事无补。不过现在不影响其他文件的操作。

 

待解决。。。。