comparison Lib/IMPL/Web/Application.pm @ 213:d6e2ea24af08

sync
author sergey
date Fri, 03 Aug 2012 01:15:15 +0400
parents 2ffe6f661605
children 47f77e6409f7
comparison
equal deleted inserted replaced
212:292226770180 213:d6e2ea24af08
17 'IMPL::Object::Singleton' => '@_' 17 'IMPL::Object::Singleton' => '@_'
18 } 18 }
19 }; 19 };
20 20
21 BEGIN { 21 BEGIN {
22 public property handlerError => PROP_ALL; 22 public property errorHandler => PROP_ALL;
23 public property actionFactory => PROP_ALL; 23 public property actionFactory => PROP_ALL;
24 public property handlers => PROP_ALL | PROP_LIST; 24 public property handlers => PROP_ALL | PROP_LIST;
25 public property responseCharset => PROP_ALL; 25 public property responseCharset => PROP_ALL;
26 public property security => PROP_ALL; 26 public property security => PROP_ALL;
27 public property options => PROP_ALL; 27 public property options => PROP_ALL;
42 die IMPL::InvalidArgumentException->new("handlers","At least one handler should be supplied") unless $this->handlers->Count; 42 die IMPL::InvalidArgumentException->new("handlers","At least one handler should be supplied") unless $this->handlers->Count;
43 43
44 $this->actionFactory(TAction) unless $this->actionFactory; 44 $this->actionFactory(TAction) unless $this->actionFactory;
45 $this->responseCharset('utf-8') unless $this->responseCharset; 45 $this->responseCharset('utf-8') unless $this->responseCharset;
46 $this->fetchRequestMethod(\&defaultFetchRequest) unless $this->fetchRequestMethod; 46 $this->fetchRequestMethod(\&defaultFetchRequest) unless $this->fetchRequestMethod;
47 $this->handlerError(\&defaultHandlerError) unless $this->handlerError; 47 $this->errorHandler(\&defaultErrorHandler) unless $this->errorHandler;
48 } 48 }
49 49
50 sub Run { 50 sub Run {
51 my ($this) = @_; 51 my ($this) = @_;
52 52
69 $action->response->Complete; 69 $action->response->Complete;
70 }; 70 };
71 if ($@) { 71 if ($@) {
72 my $e = $@; 72 my $e = $@;
73 # we are expecting this method to be safe otherwise we can trust nothing in this wolrd 73 # we are expecting this method to be safe otherwise we can trust nothing in this wolrd
74 $this->handlerError()->($this,$action,$e); 74 $this->errorHandler()->($this,$action,$e);
75 } 75 }
76 } 76 }
77 } 77 }
78 78
79 sub _ChainHandler { 79 sub _ChainHandler {
136 $query->charset($this->responseCharset); 136 $query->charset($this->responseCharset);
137 return $query; 137 return $query;
138 } 138 }
139 } 139 }
140 140
141 sub defaultHandlerError { 141 sub defaultErrorHandler {
142 my ($this,$action,$e) = @_; 142 my ($this,$action,$e) = @_;
143 warn $e; 143 warn $e;
144 if ( eval { $action->ReinitResponse(); 1; } ) { 144 if ( eval { $action->ReinitResponse(); 1; } ) {
145 $action->response->contentType('text/plain'); 145 $action->response->contentType('text/plain');
146 $action->response->charset($this->responseCharset); 146 $action->response->charset($this->responseCharset);
206 206
207 =end code 207 =end code
208 208
209 =head1 DESCRIPTION 209 =head1 DESCRIPTION
210 210
211 C< use parent qw( IMPL::Config IMPL::Object::Singleton )> 211 C< inherits IMPL::Config, IMPL::Object::Singleton >
212 212
213 Зкземпляр приложения содержит в себе глобальные настройки, реализует контроллер запросов, 213 Зкземпляр приложения содержит в себе глобальные настройки, реализует контроллер запросов,
214 в качестве источника запросов используется CGI или иной совместимый модуль. 214 в качестве источника запросов используется CGI или иной совместимый модуль.
215 215
216 Процесс обработки запроса состоит из следующих частей 216 Процесс обработки запроса состоит из следующих частей
308 308
309 =head1 MEMBERS 309 =head1 MEMBERS
310 310
311 =over 311 =over
312 312
313 =item C<[get,set] handlerError> 313 =item C<[get,set] errorHandler>
314 314
315 Обработчик который будет вызван в случае возникновения необработанной ошибки 315 Обработчик который будет вызван в случае возникновения необработанной ошибки
316 в процессе работы приложения. После чего приложение корректно завершается. 316 в процессе работы приложения. После чего приложение корректно завершается.
317 317
318 =item C<[get,set] actionFactory> 318 =item C<[get,set] actionFactory>