comparison 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
comparison
equal deleted inserted replaced
46:75148ccd732d 47:a9b70d836b28
1 package IMPL::Web::Application; 1 package IMPL::Web::Application;
2 use strict; 2 use strict;
3 use warnings; 3 use warnings;
4 4
5 use base qw(IMPL::Object IMPL::Object::Singleton); 5 use base qw(IMPL::Object IMPL::Object::Singleton);
6 use IMPL::Class::Property;
6 7
8 BEGIN {
9 public property RequestFactory => prop_all;
10 public property ContextInitializers => prop_all;
11 }
7 12
13 # custom factory
14 sub new {
15 my ($self,$file) = @_;
16
17 return $self->LoadXMLFile($file);
18 }
19
20 sub Run {
21 my ($this) = @_;
22
23 while (my $request = $this->fetch_request()) {
24 my $context = $this->prepare_context($request);
25 $context->invoke($request);
26 }
27 }
8 28
9 1; 29 1;
10 30
11 =pod 31 =pod
12 32
33 =head1 SYNOPSIS
13 34
35 require MyApp;
36 MyApp->instance('app.config')->Run();
37
38 =head1 DESCRIPTION
39
40 Зкземпляр приложения содержит в себе глобальные настройки, реализует контроллер запросов,
41
42 Получая запрос из источника запросов, создает контекст выполнения запроса
43 затем выполняет запрос в указанном контексте.
44
45 Контекст формируется сначала из запроса, а затем посредством набора инициализаторов
14 46
15 =cut 47 =cut