Mercurial > pub > Impl
diff Lib/IMPL/Web/Application/Response.pm @ 67:9f5795a10939
Documentation, minor fixes
author | wizard |
---|---|
date | Fri, 19 Mar 2010 20:06:12 +0300 |
parents | 2840c4c85db8 |
children | 67eb8eaec3d4 |
line wrap: on
line diff
--- a/Lib/IMPL/Web/Application/Response.pm Thu Mar 18 17:58:33 2010 +0300 +++ b/Lib/IMPL/Web/Application/Response.pm Fri Mar 19 20:06:12 2010 +0300 @@ -14,6 +14,7 @@ #todo: add binary method to set a binary encoding, set it automatic when type isn't a text BEGIN { + # автозаполнение буде происходить в порядке объявления public property query => prop_get | owner_set; # cgi query public property status => prop_all, { validator => \&_checkHeaderPrinted }; public property contentType => prop_all, { validator => \&_checkHeaderPrinted }; # String @@ -32,11 +33,19 @@ __PACKAGE__->PassThroughArgs; +our %CTOR = ( + 'IMPL::Object::Autofill' => sub { + my %args = @_; + + $args{query} = CGI->new($args{query} || {}); + + %args; + } +); + sub CTOR { my ($this,%args) = @_; - $this->query(CGI->new($this->query() | {})) unless $this->query; - if (lc $this->streamOut eq 'memory') { my $dummy = ''; open my $hout, '>:encoding(utf8)', \$dummy or die new IMPL::Exception("Failed to create memory stream",$!); @@ -165,15 +174,23 @@ =pod +=head1 NAME + +C<IMPL::Web::Application::Response> - Ответ веб сервера непосредственно клиенту. + =head1 DESCRIPTION -Ответ сервера на CGI запрос, позволяет сформировать основные свойства заголовка и тело запроса. +C<[Infrastructure]> + +Позволяет сформировать основные свойства заголовка и тело ответа. + +Создается объектом C<IMPL::Web::Application::Action> в процессе обработки запроса. + +Может использоваться обработчиками C<IMPL::Web::QueryHandler> в процессе выполнения запроса. Объект позволяет буфферизировать вывод в тело ответа, что позволяет отменить или изменить -ответ в последний момент. - -Свойство C< isHeaderPrinted > можно использовать для определения были ли отправлены какие-нибудь -данные клиенту. +ответ в последний момент. Свойство C< isHeaderPrinted > используется для определения факта +отправлки данных клиенту. =head1 PROPERTIES @@ -184,27 +201,27 @@ =over -=item C< query > +=item C< [get] query > CGI запрос, который используется для вывода данных, заголовка и пр. Существует всегда. -=item C< status > +=item C< [get,set] status > Код ошибки HTTP. Например, '200 OK'. По умолчанию не установлен, при отправке клиенту бедт отправлен '200 ОК'. -=item C< contentType > +=item C< [get,set] contentType > Тип MIME. По умолчанию не установлен, подразумивается 'text/html'. -=item C< charset > +=item C< [get,set] charset > Кодировка, синоним свойства query->charset. -=item C< expires > +=item C< [get,set] expires > Определяет время жизни контента, например '+10m'. По умолчанию не задано и не передается. -=item C< cookies > +=item C< [get,set] cookies > Хеш массив с cookies, например C< { cart => ['foo','bar'], display => 'list' } >. @@ -216,7 +233,7 @@ =over -=item C< buffered > +=item C< [get,set] buffered > C< True > - то тело ответа пишется в буффер и будет отправлено при вызове метода C< Complete >, заголовок также будет отправлен после вызова метода C< Complete >. @@ -226,15 +243,15 @@ Это свойство можно менять до первого обращения к потоку для записи в тело ответа. -=item C< streamOut > +=item C< [get] streamOut > Стандартный вывод CGI приложения. -=item C< streamBody > +=item C< [get] streamBody > Поток для записи в тело ответа. -=item C< isHeadPrinted > +=item C< [get] isHeadPrinted > Признак того, что заголовок уже был отправлен клиенту. @@ -255,4 +272,9 @@ =back +=head1 REMARKS + +Данный объект является автозаполняемым, т.е. все его свойства можно задать через +именованные параметры конструктора. + =cut \ No newline at end of file