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 { |
