Mercurial > pub > Impl
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 |