发新话题
打印

[原创] extman 0.2.3代码简单分析(3)

本主题由 hzqbbc 于 2007-12-21 23:13 加入精华

extman 0.2.3代码简单分析(3)

4、在MgrApp.pm ,我们看看init 里做些什么事情。
复制内容到剪贴板
代码:
sub init {
    my $self = shift;

    # trace and store exception, install signal handler
    local $SIG{__DIE__} = $SIG{__WARN__} = sub { $self->trace(@_) };
# 下面2行,初始化cgi 模块,以后我们可以通过$self->{query} 去调用Ext::CGI 里的方法。
    my $CGI = new Ext::CGI;
    $self->{query} = $CGI;
    $self->{requires_login} =1;

    # must initialize first
    $self->init_sysconfig; #初始系统配置?果然是,看看下面的init_sysconfig 子程序,只要是对目前系统配置的处理。指的是webman.cf 如果有人不小心删了某些参数,就会使用默认设置。

#下面6行,初始化模版驱动可以通过$self->{tpl} 来使用Ext::Template 里的方法。
    # begin to initialize other things
    $self->{tpl} = Ext::Template->new(
        root => $self->{sysconfig}->{SYS_TEMPLDIR},
        cache => 0,
        blind_cache => 0,
    );
#下面这些代码大部分是cgi cookie;/session 方面的,在此就不说了。
    my $sid = $CGI->get_cookie('webman_sid'); # only trust cookie

    if($sid) {
        $self->{sid} = $sid;
        if ($self->valid_session) {
            $self->{error} = undef;
            $self->init_env($sid);
            $CGI->set_cookie(
                name => 'webman_sid',
                value => $sid,
            ); # cookie expire after the browser closed
        } else {
            $CGI->set_cookie(
                name => 'webman_sid',
                value => '',
                expires => $CGI->expires('-1y'),
            );
            $self->error('Session expired, please login again!');
            kill_sid($self->{sid}); # destory session what ever it's
        }
        return 1; # return
    }
    $self->error('Invalid session, try again!') unless($self->permit);
}
执行以上方法后,返回到Ext.pm new 方法的最后。
复制内容到剪贴板
代码:
    if ($ctx->can('init')) {
        $ctx->init;
    }
    $ctx; #返回
}
至此overview.cgi 中的new方法执行完。
复制内容到剪贴板
代码:
    my $app = Ext::MgrApp::OverView->new( config => $DIR . 'webman.cf',
                                          directory => $DIR );
[ 本帖最后由 fengyong 于 2007-12-20 14:23 编辑 ]
开源易有
http://www.yiyou.org/

TOP

yong哥厉害~ 发那么多好帖,不得不顶~
请引用或摘抄本站文章信息的朋友,保留本站链接及作者信息,保护版权,谢谢。

构建高性能大容量开源邮件系统- ExtMail

Postfix在中国官方网站

TOP

  辛苦了

TOP

真不错

TOP

辛苦了~!!!!

TOP

发新话题