ExtMail服务器社区's Archiver

fengyong 发表于 2007-12-18 16:55

extman 0.2.3代码简单分析(3)

4、在MgrApp.pm ,我们看看init 里做些什么事情。
[code]
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);
}
[/code]

执行以上方法后,返回到Ext.pm new 方法的最后。
[code]
    if ($ctx->can('init')) {
        $ctx->init;
    }
    $ctx; #返回
}
[/code]
至此overview.cgi 中的new方法执行完。
[code]
    my $app = Ext::MgrApp::OverView->new( config => $DIR . 'webman.cf',
                                          directory => $DIR );
[/code]

[[i] 本帖最后由 fengyong 于 2007-12-20 14:23 编辑 [/i]]

hzqbbc 发表于 2008-3-29 01:02

yong哥厉害~ 发那么多好帖,不得不顶~

ganjianwu 发表于 2008-7-8 15:44

:lol  辛苦了

l1pe1 发表于 2008-8-18 16:43

真不错:loveliness:

小雁塔 发表于 2008-11-12 15:07

辛苦了~!!!!

页: [1]

Powered by Discuz! Archiver 7.0.0  © 2001-2009 Comsenz Inc.