《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 = "<?php echo $this->getBaseUrl(); ?>/Login/loginOut";
        }
        else{
            return true;
        }
    }

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

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

尝试过的手段:

clean up

删除后 重新check out

本地svn客户端 clean up

update

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

待解决。。。。

《deetom》项目开发历程<三>,布布扣,bubuko.com

时间: 2024-10-26 04:01:16

《deetom》项目开发历程<三>的相关文章

《deetom》项目开发历程&lt;二&gt;

接着昨天. session 问题解决了: 具体: 我发现init方法是加载类完成先执行init方法,(具体我猜测是在框架中设置的,这个方法),所以写了一个类,专门判断session是否过期,继承controller,有需要的页面继承这个类. 注册登录做完了,下一步是开发个人中心,前端师兄昨天给我发了页面,10个页面,页面大致分为四块,header body<left  right> footer.我看到后首先想到的是iframe.基于做cms系统的惯性思维. 但是仔细看,每一个页面都是div

《deetom》项目开发历程&lt;五&gt; PHP邮件

邮件类库是从github下载的 简单好用: protected function sendEmail($emailAddress,$realname,$token,$title,$do){ include_once APP_ROOT . 'doitphp/modules/phpmailer/PHPMailerAutoload.php'; //示例化PHPMailer核心类 $mail = new PHPMailer(); //是否启用smtp的debug进行调试 开发环境建议开启 生产环境注释掉

《deetom》项目开发历程&lt;四&gt;

今天对session 信息重新做了定位; 我准备session只管匹配某个信息有或是没有,而不做为信息展示. 这样做的原因是因为,举个简单的例子,比如我要修改用户信息,那我们在修改后还需要对session进行维护,按照某位高手的话来讲,这样就造成逆向调用了. 把session当成数据库缓存来用,是可以的,只是可能不会是很好的一种做法. 当用户量达到某个客观值后,session的开销会对内存造成很大影响.当然目前我还不知道怎么对数据库进行缓存. <deetom>项目开发历程<四>

tomcat发布web项目的三种方式

tomcat发布web项目的三种方式 方式一: 配置tomcat 安装目录下的conf/server.xml <Host name="loaclhost">标签里面添加 <Context path="/aa" docBase="C:\AA\BB" /> 即/aa这个虚拟路径映射到了C:\AA\BB目录下,修改完servler.xml需要重启tomcat服务器 方式二: 在conf目录下创建Catalina目录,在此目录下新

bbs项目应用三

项目应用三:定义项目初始化文件和入口文件 创建项目初始化文件 所谓的项目初始化文件就是基本上每个脚本都要使用的文件!里面定义一些最常用的基本代码! 在根目录下创建初始化文件init.php: 完善index.php入口文件 1, 加载项目初始化文件 2, 加载视图文件 3, 修改index.html中的css路径 项目应用四:完成注册功能 第一步:在index.html中完善"注册"按钮的链接 第二步:在model下面创建register.php 第三步:完善register.html

利用Eclipse中的Maven构建Web项目(三)

利用Eclipse中的Maven构建Web项目 1.将Maven Project转换成动态Web项目,鼠标右键项目,输入"Project Facets" 2.根据Dynamic Web Module的版本修改Java Compiler中的"Compiler compliance level"的版本 3.设置部署程序集(Web Deployment Assembly),删除含有"test" 4.将Maven的jar包发布到lib下, "A

记2014年暑假,一个项目,三个框架

在开始动笔之际,看了下博文的标题,突然觉得欠妥,"记2014年暑假,一个项目,三个框架",既然是暑假说明还是学生,今年的6月我已经毕业了,但还在学习,并且在向一名合格的架构师狂奔.你说我矫情也好,做作也罢,现实就是这样的,厚着脸说:咱也矫情一回. 整个暑假,总共四十天,从7月中旬开始到8月底,从技术上看,整个假期都处于看视频,做项目,作总结的过程中,前二十天跟着视频做了DRP的项目,后二十天(到8月26日),看完了三个框架的视频,总结还在继续:从英语上看,这个假期是从听走向说的开始:从

EF6.0+APS.NET MVC5.0项目初探三(code first实体映射到数据库)

到这里架构就搭建完了,该向里面填充东西的时候了,如上篇:EF6.0+APS.NET MVC5.0项目初探二(类库引用关系及说明) 第一步 :在需要添加EF的类库Domain.DbContext上右击->管理NuGet程序包->找到Entity FrameWork下载安装. 如图: 第二步:新建DbContext 第三步:在类库Domain.Entity上添加引用System.ComponentModel.DataAnnotations(用于验证的引用) 并新建实体类. 1 using Syst

tky项目第三个半月总结

前两篇文章中,介绍了tky项目的相关情况.第一篇主要介绍项目的总体架构.项目的进展情况.项目的优势与开发中存在的问题:第二篇主要介绍了项目中的一个比较重要的测试中发生的事情:今天来说说,这半个月的经历. 总体来说,项目较成功的通过了评测中心的测试.经理很体谅大家前阶段的辛苦,所以就让大家休息了一个星期.这一星期,大家都到点儿下班,唯一的工作就是对前阶段的工作做一个总结,然后干一些自己想干的事情. 经过一个星期的修整,接下来就又要开始第二轮的战斗了.近期,领导可能会过来看一下我们的系统.所以我们要