view Lib/IMPL/Web/Application.pm @ 49:16ada169ca75

migrating to the Eclipse IDE
author wizard@linux-odin.local
date Fri, 26 Feb 2010 10:49:21 +0300
parents a9b70d836b28
children 15d720913562
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