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 |
