49
|
1 package IMPL::Web::Application;
|
|
2 use strict;
|
|
3 use warnings;
|
|
4
|
|
5 use base qw(IMPL::Object IMPL::Object::Singleton);
|
|
6 use IMPL::Class::Property;
|
|
7
|
|
8 BEGIN {
|
52
|
9 public property handlerError => prop_all;
|
49
|
10 }
|
|
11
|
|
12 # custom factory
|
|
13 sub new {
|
|
14 my ($self,$file) = @_;
|
|
15
|
|
16 return $self->LoadXMLFile($file);
|
|
17 }
|
|
18
|
|
19 sub Run {
|
|
20 my ($this) = @_;
|
|
21
|
|
22 while (my $request = $this->fetch_request()) {
|
52
|
23 my $action = $this->prepare_action($request);
|
|
24 $action->invoke($request);
|
49
|
25 }
|
|
26 }
|
|
27
|
|
28 1;
|
|
29
|
52
|
30 __END__
|
|
31
|
49
|
32 =pod
|
|
33
|
|
34 =head1 SYNOPSIS
|
|
35
|
|
36 require MyApp;
|
|
37 MyApp->instance('app.config')->Run();
|
|
38
|
|
39 =head1 DESCRIPTION
|
|
40
|
|
41 Зкземпляр приложения содержит в себе глобальные настройки, реализует контроллер запросов,
|
52
|
42 в качестве источника запросов используется CGI или иной совместимый модуль.
|
49
|
43
|
52
|
44 Процесс обработки запроса состоит из следующих частей
|
49
|
45
|
52
|
46 1. Получение cgi запроса
|
|
47 2. Вызов модуля для инициализации объекта действия
|
|
48 3. Инициализация контекста выполнения
|
|
49 4. Выполнение запроса
|
|
50 5. Преобразование полученных данных в тело ответа
|
|
51
|
|
52
|
|
53
|
49
|
54
|
|
55 =cut
|