view Lib/IMPL/Web/Application.pm @ 50:521c9c1a3ea1

:q
author wizard@linux-odin.local
date Sat, 27 Feb 2010 16:28:45 +0300
parents 16ada169ca75
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