Mercurial > pub > Impl
comparison Lib/IMPL/Web/Application/Action.pm @ 180:d1676be8afcc
Перекодировка в utf-8
author | sourcer |
---|---|
date | Fri, 30 Dec 2011 23:40:00 +0300 |
parents | aaab45153411 |
children | 4d0e1962161c |
comparison
equal
deleted
inserted
replaced
179:b3d91ff7aea9 | 180:d1676be8afcc |
---|---|
118 | 118 |
119 =pod | 119 =pod |
120 | 120 |
121 =head1 NAME | 121 =head1 NAME |
122 | 122 |
123 C<IMPL::Web::Application::Action> - C<CGI> . | 123 C<IMPL::Web::Application::Action> - Обертка вокруг C<CGI> запроса. |
124 | 124 |
125 =head1 DESCRIPTION | 125 =head1 DESCRIPTION |
126 | 126 |
127 C<[Infrastructure]> | 127 C<[Infrastructure]> |
128 | 128 |
129 . | 129 Определяет порядок выполнения запроса. Запрос выполняется последовательным вызовом |
130 , . | 130 цепочки обработчиков, при этом обработчики сами вызывают следующие. |
131 , . | 131 Обработчики выполняются в порядке, обратном их добавлению. |
132 | 132 |
133 , | 133 Типичная цепочка может быть такой, в порядке добавления |
134 | 134 |
135 =begin code | 135 =begin code |
136 | 136 |
137 IMPL::Web::QueryHandler::SecCallToMethod | 137 IMPL::Web::QueryHandler::SecCallToMethod |
138 IMPL::Web::QueryHandler::AuthenticateCookie | 138 IMPL::Web::QueryHandler::AuthenticateCookie |
139 IMPL::Web::QueryHandler::PageFormat | 139 IMPL::Web::QueryHandler::PageFormat |
140 | 140 |
141 =end code | 141 =end code |
142 | 142 |
143 | 143 что приведет к следующей последовательности |
144 | 144 |
145 =begin code | 145 =begin code |
146 | 146 |
147 # the application creates a new Action object | 147 # the application creates a new Action object |
148 | 148 |
205 } | 205 } |
206 } | 206 } |
207 | 207 |
208 =end code | 208 =end code |
209 | 209 |
210 | 210 или как альтернатива может быть еще |
211 | 211 |
212 =begin code | 212 =begin code |
213 | 213 |
214 IMPL::Web::QueryHandler::SecCallToMethod | 214 IMPL::Web::QueryHandler::SecCallToMethod |
215 IMPL::Web::QueryHandler::AuthenticateCookie | 215 IMPL::Web::QueryHandler::AuthenticateCookie |
217 IMLP::Web::QueryHandler::JSONFormat | 217 IMLP::Web::QueryHandler::JSONFormat |
218 | 218 |
219 | 219 |
220 =end code | 220 =end code |
221 | 221 |
222 , | 222 В данной цепочке также происходит вызов метода, но его результат потом преобразуется |
223 JSON . | 223 в простые структуры и передается JSON преобразователю. Таким образом модулю логики |
224 , . | 224 не требуется знать о выходном формате, всю работу проделают дополнительные фильтры. |
225 | 225 |
226 =head1 MEMBERS | 226 =head1 MEMBERS |
227 | 227 |
228 =head2 PROPERTIES | 228 =head2 PROPERTIES |
229 | 229 |
230 =over | 230 =over |
231 | 231 |
232 =item C< [get] application> | 232 =item C< [get] application> |
233 | 233 |
234 | 234 Экземпляр приложения создавшего текущий объект |
235 | 235 |
236 =item C< [get] query > | 236 =item C< [get] query > |
237 | 237 |
238 C<CGI> | 238 Экземпляр C<CGI> запроса |
239 | 239 |
240 =item C< [get] response > | 240 =item C< [get] response > |
241 | 241 |
242 C<CGI> C<IMPL::Web::Application::Response> | 242 Ответ на C<CGI> заспрос C<IMPL::Web::Application::Response> |
243 | 243 |
244 =item C< [get] responseFactory > | 244 =item C< [get] responseFactory > |
245 | 245 |
246 , | 246 Фабрика ответов на запрос, используется для создания нового ответа |
247 C<IMPL::Web::Application::Action>, | 247 либо при конструировании текущего объекта C<IMPL::Web::Application::Action>, |
248 C<ReinitResponse> . | 248 либо при вызове метода C<ReinitResponse> у текущего объекта. |
249 | 249 |
250 C<IMPL::Web::Application::Response> | 250 По умолчанию имеет значение C<IMPL::Web::Application::Response> |
251 | 251 |
252 =back | 252 =back |
253 | 253 |
254 =head2 METHODS | 254 =head2 METHODS |
255 | 255 |
256 =over | 256 =over |
257 | 257 |
258 =item C< ReinitResponse() > | 258 =item C< ReinitResponse() > |
259 | 259 |
260 C<response> . | 260 Отмена старого ответа C<response> и создание вместо него нового. |
261 | 261 |
262 , | 262 Данная операция обычно проводится при обработке ошибок, когда |
263 . , | 263 уже сформированный ответ требуется отменить. Следует заметить, |
264 , | 264 что эта операция не возможна, если ответ частично или полностью |
265 . C<IMPL::InvalidOperationException>. | 265 отправлен клиенту. Тогда возникает исключение C<IMPL::InvalidOperationException>. |
266 | 266 |
267 =item C< ChainHandler($handler) > | 267 =item C< ChainHandler($handler) > |
268 | 268 |
269 . , | 269 Добавляет новый обработчик в цепочку. Выполнение цепочки начинается с конца, |
270 . | 270 тоесть последний добавленный будет выполнен первым. |
271 | 271 |
272 =back | 272 =back |
273 | 273 |
274 =head1 HANDLERS | 274 =head1 HANDLERS |
275 | 275 |
277 | 277 |
278 =over | 278 =over |
279 | 279 |
280 =item CODE ref | 280 =item CODE ref |
281 | 281 |
282 , | 282 Ссылка на процедуру может являться обработчиком, при этом функция будет вызвана с |
283 : action , . | 283 двумя параметрами: ссылкой на action объект, и точкой входа следующего обработчика. |
284 | 284 |
285 =item Method Name | 285 =item Method Name |
286 | 286 |
287 , . action | 287 Имя метода, передается в виде строки. У текущего объекта action ищется метод с |
288 , | 288 указанным именем, после чего используется ссылка на этот метод для вызова с двумя |
289 : action , . | 289 параметрами: ссылкой на action объект, и точкой входа следующего обработчика. |
290 | 290 |
291 C<< $action->MethodName($nextHandler) >>; | 291 Получается вызов идентичный следующему C<< $action->MethodName($nextHandler) >>; |
292 | 292 |
293 =back | 293 =back |
294 | 294 |
295 =head2 C< IMPL::Web::QueryHandler > | 295 =head2 C< IMPL::Web::QueryHandler > |
296 | 296 |
297 C< IMPL::Web::QueryHandler > | 297 Любой объект наследованный от C< IMPL::Web::QueryHandler > может быть |
298 | 298 использован в качестве обработчика запроса |
299 | 299 |
300 =cut | 300 =cut |