Mercurial > pub > Impl
comparison Lib/IMPL/Web/Application/ControllerUnit.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 |
---|---|
265 | 265 |
266 =pod | 266 =pod |
267 | 267 |
268 =head1 NAME | 268 =head1 NAME |
269 | 269 |
270 C<IMPL::Web::Application::ControllerUnit> - . | 270 C<IMPL::Web::Application::ControllerUnit> - базовый класс для обработчика транзакций в модели контроллера. |
271 | 271 |
272 =head1 DESCRIPTION | 272 =head1 DESCRIPTION |
273 | 273 |
274 , . | 274 Классы, наследуемые от данного класса называется пакетом транзакций. Часть методов в таком классе |
275 C<transaction>, C<form>. | 275 объявляются как транзакции при помощи методов C<transaction>, C<form>. |
276 | 276 |
277 , . | 277 Перед выполнением транзакции создается экземпляр объекта, в рамках которого будет выполнена транзакция. |
278 C<InvokeAction($method,$action)>, / | 278 Для этого вызывается метод C<InvokeAction($method,$action)>, который создает/восстанавливает контекст |
279 . | 279 транзакции. |
280 | 280 |
281 . | 281 Транзакции на данный момент делятся на простые и формы. Различные типы транзакций выполняются при помощи |
282 (C<TransactionWrapper> C<FormWrapper>). | 282 различных оберток (C<TransactionWrapper> и C<FormWrapper>). Каждая обертка отвечает за конструирование |
283 , . | 283 экземпляра объекта и вызов метода для выполнения транзакции, а также за возврат результата выполнения. |
284 | 284 |
285 =head2 | 285 =head2 Простые транзакции |
286 | 286 |
287 , , | 287 Простые транзакции получаю только запрос, без предварительной обработки, и возвращенный результат напрямую |
288 . | 288 передается пользователю. |
289 | 289 |
290 =head2 | 290 =head2 Формы |
291 | 291 |
292 , DOM . | 292 При использовании форм запрос предварительно обрабатывается, для получения DOM документа с данными формы. |
293 DOM . | 293 Для постороенния DOM документа используется схема. При этом становятся доступны дополнительные свойства |
294 C<formData>, C<formSchema>, C<formErrors>. | 294 C<formData>, C<formSchema>, C<formErrors>. |
295 | 295 |
296 , , | 296 Результат выполнения транзакции не возвращается наверх напрямую, а включается в структуру, которая |
297 | 297 выглядит следующим образом |
298 | 298 |
299 =begin code | 299 =begin code |
300 | 300 |
301 { | 301 { |
302 state => '{ new | correct | invalid }', | 302 state => '{ new | correct | invalid }', |
310 | 310 |
311 =over | 311 =over |
312 | 312 |
313 =item C<state> | 313 =item C<state> |
314 | 314 |
315 . | 315 Состояние верификации формы. |
316 | 316 |
317 =over | 317 =over |
318 | 318 |
319 =item C<new> | 319 =item C<new> |
320 | 320 |
321 , , . | 321 Первоначальное содержимое формы, оно может быть некорректным, но это нормально. |
322 . | 322 В данном состоянии транзакция обычно не выполняется. |
323 | 323 |
324 =item C<correct> | 324 =item C<correct> |
325 | 325 |
326 , , C<result> | 326 Данные формы корректны, транзакция выполнена, и ее результат доступен через поле C<result> |
327 | 327 |
328 =item C<invalid> | 328 =item C<invalid> |
329 | 329 |
330 , C<formErrors>. | 330 Содержимое формы не прошло верификацию, ошибки доступны через поле C<formErrors>. Транзакция |
331 . | 331 не выполнялась. |
332 | 332 |
333 =back | 333 =back |
334 | 334 |
335 =item C<result> | 335 =item C<result> |
336 | 336 |
337 , . | 337 Результат выполнения транзакции, если конечно таковая выполнялась. |
338 | 338 |
339 =item C<formData> | 339 =item C<formData> |
340 | 340 |
341 . , , | 341 ДОМ документ с данными формами. Документ существует всегда, не зависимо от его корректности, |
342 , . | 342 может быть использован для построения формы, уже заполненную параметрами. |
343 | 343 |
344 =item C<formSchema> | 344 =item C<formSchema> |
345 | 345 |
346 , . | 346 Схема данных формы, может использоваться для построения динамических форм. |
347 | 347 |
348 =item C<formErrors> | 348 =item C<formErrors> |
349 | 349 |
350 . | 350 Ссылка на массив с ошибками при проверки формы. |
351 | 351 |
352 =back | 352 =back |
353 | 353 |
354 =head1 MEMBERS | 354 =head1 MEMBERS |
355 | 355 |
356 =over | 356 =over |
357 | 357 |
358 =item C<[get] application> | 358 =item C<[get] application> |
359 | 359 |
360 , . | 360 Объект приложения, которое обрабатывает запрос. |
361 | 361 |
362 =item C<[get] query> | 362 =item C<[get] query> |
363 | 363 |
364 . | 364 Текущий запрос. |
365 | 365 |
366 =item C<[get] response> | 366 =item C<[get] response> |
367 | 367 |
368 . | 368 Текущий ответ. |
369 | 369 |
370 =item C<[get] formData> | 370 =item C<[get] formData> |
371 | 371 |
372 C<IMPL::DOM::Document> , . | 372 C<IMPL::DOM::Document> документ с данныим, если данный запрос является формой. |
373 | 373 |
374 =item C<[get] formSchema> | 374 =item C<[get] formSchema> |
375 | 375 |
376 C<IMPL::DOM::Schema> . | 376 C<IMPL::DOM::Schema> документ со схемой формы данного запроса. |
377 | 377 |
378 =item C<[get] formErrors> | 378 =item C<[get] formErrors> |
379 | 379 |
380 , . , | 380 Ошибки верификации данных, если таковые были. Обычно при наличии ошибок в форме, транзакция |
381 , . | 381 не выполняется, а эти ошибки передаются в ответ. |
382 | 382 |
383 =item C<InvokeAction($method,$action)> | 383 =item C<InvokeAction($method,$action)> |
384 | 384 |
385 , | 385 Конструирует контекст выполнения транзакции, может быть переопределен для конструирования контекста по |
386 . | 386 своим правилам. |
387 | 387 |
388 =item C<TransactionWrapper($method,$action,$methodInfo)> | 388 =item C<TransactionWrapper($method,$action,$methodInfo)> |
389 | 389 |
390 , | 390 Обертка для конструирования простых транзакций, может быть переопределен для конструирования контекста по |
391 . | 391 своим правилам. |
392 | 392 |
393 =item C<FormWrapper($method,$action,$methodInfo)> | 393 =item C<FormWrapper($method,$action,$methodInfo)> |
394 | 394 |
395 , | 395 Обертка для конструирования форм, может быть переопределен для конструирования контекста по |
396 . | 396 своим правилам. |
397 | 397 |
398 =item C<discover()> | 398 =item C<discover()> |
399 | 399 |
400 , , C<Simple Module Definition>. | 400 Метод, опубликованный для вызова контроллером, возвращает описание методов в формате C<Simple Module Definition>. |
401 | 401 |
402 =begin code | 402 =begin code |
403 | 403 |
404 # SMD structure | 404 # SMD structure |
405 { | 405 { |