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 {