Mercurial > pub > Impl
diff 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 |
line wrap: on
line diff
--- a/Lib/IMPL/Web/Application.pm Tue Feb 02 17:09:49 2010 +0300 +++ b/Lib/IMPL/Web/Application.pm Tue Feb 23 22:57:16 2010 +0300 @@ -3,13 +3,45 @@ 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 \ No newline at end of file