CGI::PSGI man page on Alpinelinux

Man page or keyword search:  
man Server   18016 pages
apropos Keyword Search (all sections)
Output format
Alpinelinux logo
[printable version]

CGI::PSGI(3)	      User Contributed Perl Documentation	  CGI::PSGI(3)

NAME
       CGI::PSGI - Adapt CGI.pm to the PSGI protocol

SYNOPSIS
	 use CGI::PSGI;

	 my $app = sub {
	     my $env = shift;
	     my $q = CGI::PSGI->new($env);
	     return [ $q->psgi_header, [ $body ] ];
	 };

DESCRIPTION
       This module is for web application framework developers who currently
       uses CGI to handle query parameters, and would like for the frameworks
       to comply with the PSGI protocol.

       Only slight modifications should be required if the framework is
       already collecting the body content to print to STDOUT at one place
       (rather using the print-as-you-go approach).

       On the other hand, if you are an "end user" of CGI.pm and have a CGI
       script that you want to run under PSGI web servers, this module might
       not be what you want.  Take a look at CGI::Emulate::PSGI instead.

       Your application, typically the web application framework adapter
       should update the code to do "CGI::PSGI->new($env)" instead of
       "CGI->new" to create a new CGI object. (This is similar to how
       CGI::Fast object is initialized in a FastCGI environment.)

INTERFACES SUPPORTED
       Only the object-oriented interface of CGI.pm is supported through
       CGI::PSGI.  This means you should always create an object with
       "CGI::PSGI->new($env)" and should call methods on the object.

       The function-based interface like "use CGI ':standard'" does not work
       with this module.

METHODS
       CGI::PSGI adds the following extra methods to CGI.pm:

   env
	 $env = $cgi->env;

       Returns the PSGI environment in a hash reference. This allows
       CGI.pm-based application frameworks such as CGI::Application to access
       PSGI extensions, typically set by Plack Middleware components.

       So if you enable Plack::Middleware::Session, your application and
       plugin developers can access the session via:

	 $cgi->env->{'plack.session'}->get("foo");

       Of course this should be coded carefully by checking the existence of
       "env" method as well as the hash key "plack.session".

   psgi_header
	my ($status_code, $headers_aref) = $cgi->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.

       If your application doesn't use "$cgi->header", you can ignore this
       method and generate the status code and headers arrayref another way.

   psgi_redirect
	my ($status_code, $headers_aref) = $cgi->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.

       If your application doesn't use "$cgi->redirect", you can ignore this
       method and generate the status code and headers arrayref another way.

LIMITATIONS
       Do not use CGI::Pretty or something similar in your controller. The
       module messes up CGI's DIY autoloader and breaks CGI::PSGI (and
       potentially other) inheritance.

AUTHOR
       Tatsuhiko Miyagawa <miyagawa@bulknews.net>

       Mark Stosberg <mark@summersault.com>

LICENSE
       This library is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

SEE ALSO
       CGI, CGI::Emulate::PSGI

perl v5.18.2			  2011-05-17			  CGI::PSGI(3)
[top]

List of man pages available for Alpinelinux

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net