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 |
