view Lib/IMPL/Web/Application.pm @ 47:a9b70d836b28

Web::Application development (request controller) Security development
author Sergey
date Tue, 23 Feb 2010 22:57:16 +0300
parents 1b1fb9d54f55
children 16ada169ca75
line wrap: on
line source

package IMPL::Web::Application;
use strict;
use warnings;

use base qw(IMPL::Object IMPL::Object::Singleton);
use IMPL::Class::Property;

BEGIN {
    public property RequestFactory => prop_all;
    public property ContextInitializers => prop_all;
}

# custom factory
sub new {
    my ($self,$file) = @_;
    
    return $self->LoadXMLFile($file);
}

sub Run {
    my ($this) = @_;
    
    while (my $request = $this->fetch_request()) {
        my $context = $this->prepare_context($request);
        $context->invoke($request);
    }
}

1;

=pod

=head1 SYNOPSIS

require MyApp;
MyApp->instance('app.config')->Run();

=head1 DESCRIPTION

Зкземпляр приложения содержит в себе глобальные настройки, реализует контроллер запросов,

Получая запрос из источника запросов, создает контекст выполнения запроса
затем выполняет запрос в указанном контексте.

Контекст формируется сначала из запроса, а затем посредством набора инициализаторов

=cut