comparison Lib/IMPL/Web/QueryHandler.pm @ 65:2840c4c85db8

Application configuration improvements Documentation
author wizard
date Tue, 16 Mar 2010 17:36:13 +0300
parents c64bd1bf727d
children 9d24db321029
comparison
equal deleted inserted replaced
64:259cd3df6e53 65:2840c4c85db8
1 package IMPL::Web::QueryHandler; 1 package IMPL::Web::QueryHandler;
2 2
3 use base qw(IMPL::Object IMPL::Object::Autofill); 3 use base qw(IMPL::Object IMPL::Object::Autofill IMPL::Object::Serializable);
4 use IMPL::Class::Property; 4 use IMPL::Class::Property;
5 5
6 __PACKAGE__->PassThroughArgs; 6 __PACKAGE__->PassThroughArgs;
7 7
8 use IMPL::Exception; 8 use IMPL::Exception;
9 9
10 sub Invoke { 10 sub Invoke {
11 my ($self,$action,$nextHandler) = @_; 11 my ($self,$action,$nextHandler) = @_;
12 12
13 if (not ref $self or UNIVERSAL::isa($self,'IMPL::Object::Factory')) { 13 if (not ref $self) {
14 return $self->new( action => $action )->Invoke($action,$nextHandler); 14 return $self->new( action => $action )->Invoke($action,$nextHandler);
15 } else { 15 } else {
16 return $self->Process($action,$nextHandler); 16 return $self->Process($action,$nextHandler);
17 } 17 }
18 } 18 }
25 25
26 __END__ 26 __END__
27 27
28 =pod 28 =pod
29 29
30 =head1 DESCRIPTION 30 =head1 NAME
31 31
32 Базовый класс для обработчиков запросов. 32 Базовый класс для обработчиков запросов.
33
34 =head1 SYNOPSIS
35
36 Простой вариант
37
38 =begin code
39
40 package MyHandler;
41
42 use base qw(IMPL::Web::QueryHandler);
43
44 sub CTOR {
45 my ($this,%args) = @_;
46
47 }
48
49 sub Process {
50 my ($this,$action,$nextHandler) = @_;
51
52 }
53
54 =end code
33 55
34 =head1 MEMBERS 56 =head1 MEMBERS
35 57
36 =over 4 58 =over 4
37 59
38 =item C< Invoke($action,$nextHandler) > 60 =item C< Invoke($action,$nextHandler) >
39 61
40 Вызывается механизмом обработки запроса, для передачи управления обработчику. Данная реализация 62 Вызывается механизмом обработки запроса, для передачи управления обработчику. Данная реализация
41 проверяет как была вызвана, если как статический метод, то создает экземпляр класса и вызывает 63 проверяет контекст вызова, если как статический метод, то создает экземпляр класса и вызывает
42 у созданного объекта метод C< Invoke > с параметрами C< $action >, C< $nextHandler >. 64 у созданного объекта метод C< Invoke > с параметрами C< $action >, C< $nextHandler >.
43 65
44 Если метод был вызван у объекта, то управление передается методу C< Process > 66 При создании нового объекта в конструктор передается именованый параметр C<action>.
45 67
46 C< $action > Экземпляр запроса 68 Если метод был вызван у объекта, то управление передается методу C< Process >.
47 69
48 C< $nextHandler > Делегат для вызова следующего обработчика. Вызывается без параметров, но следующему обработчику 70 =over
71
72 =item C< $action >
73
74 Экземпляр запроса
75
76 =item C< $nextHandler >
77
78 Делегат для вызова следующего обработчика. Вызывается без параметров, но следующему обработчику
49 втоматически будут переданы необходимые параметры. 79 втоматически будут переданы необходимые параметры.
50 80
51 =back 81 =back
52 82
83 =back
84
53 =cut 85 =cut