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