NAME
CGI::Header::PSGI - Role for generating PSGI response headers
SYNOPSIS
use parent 'CGI';
use Role::Tiny::With;
with 'CGI::Header::PSGI';
sub crlf { $CGI::CRLF }
# psgi_header() and psgi_redirect() get imported
VERSION
This document refers to CGI::Header::PSGI 0.05.
DESCRIPTION
This module is a Role::Tiny role to generate PSGI response headers array reference.
This module doesn't case if your query class is orthogonal to a global variable %ENV
. For example, CGI::PSGI
adds the env()
attribute to CGI.pm, and also overrides some methods which refer to %ENV
directly. This module doesn't solve these problems at all.
REQUIRED METHODS
Your query class has to implement the following methods:
- $query->charset
-
Returns the character set sent to the browser. Implemented by both of CGI and CGI::Simple.
- $query->self_url
-
Returns the complete URL of your script. Implemented by both of CGI and CGI::Simple.
- $query->cache
-
Implemented by both of CGI and CGI::Simple.
- $query->no_cache (optional)
-
Implemented by CGI::Simple.
- $query->nph
-
Implemented by both of CGI and CGI::Simple.
- $query->server_software
-
Returns the server software and version number. Implemented by both of CGI and CGI::Simple.
- $query->crlf
-
Returns the system specific line ending sequence. Implemented by both of CGI and CGI::Simple.
METHODS
By composing this role, your class is capable of following methods.
- ($status_code, $headers_aref) = $query->psgi_header( %args )
-
Works like CGI.pm's
header()
, but the return format is modified. It returns an array with the status code and arrayref of header pairs that PSGI requires.Unlike
header()
, this method doesn't updatecharset()
. - ($status_code, $headers_aref) = $query->psgi_redirect( %args )
-
Works like CGI.pm's
redirect()
, but the return format is modified. It returns an array with the status code and arrayref of header pairs that PSGI requires.Unlike
redirect()
, this method doesn't updatecharset()
.
SEE ALSO
CGI::PSGI, CGI::Emulate::PSGI, CGI::Simple
AUTHOR
Ryo Anazawa (anazawa@cpan.org)
LICENSE
This module is free software; you can redistibute it and/or modify it under the same terms as Perl itself. See perlartistic.