Mercurial > pub > Impl
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 |