NetSDS::App::FCGI3pm
Fastcgi applications superclass
Usage
# Run applicationMyFCGI->run();1;# Application package itselfpackage MyFCGI;use base 'NetSDS::App::FCGI';sub process {my ($self) = @_;$self->data('Hello World');$self->mime('text/plain');$self->charset('utf-8');}
Overview
"NetSDS::App::FCGI" module contains superclass for FastCGI applications. This class is based on "NetSDS::App" module and inherits all its functionality like logging, configuration processing, etc.
Class API
new(%params)- class constructor-
Normally constructor of application framework shouldn't be invoked directly.
cgi()- accessor to CGI.pm request handler-
my $https_header = $self->cgi->https('X-Some-Header');
status([$new_status])- set response HTTP status-
Paramters: new status to set
Returns: response status value
$self->status('200 OK');
mime()- set response MIME type-
Paramters: new MIME type for response
$self->mime('text/xml'); # output will be XML data
charset()- set response character set if necessary-
$self->mime('text/plain');$self->charset('koi8-r'); # ouput as KOI8-R text
data($new_data)- set response data-
Paramters: new data "as is"
$self->mime('text/plain');$self->data('Hello world!');
redirect($redirect_url)- send HTTP redirect-
Paramters: new URL (relative or absolute)
This method send reponse with 302 status and new location.
if (havent_data()) {$self->redirect('http://www.google.com'); # to google!};
cookie()--
Paramters:
Returns:
This method provides.....
headers($headers_hashref)- set/get response HTTP headers-
Paramters: new headers as hash reference
$self->headers({'X-Beer' => 'Guiness',);
main_loop()- main FastCGI loop-
Paramters: none
This method implements common FastCGI (or CGI) loop.
set_cookie(%params)- set cookie-
Paramters: hash (name, value, expires)
$self->set_cookie(name => 'sessid', value => '343q5642653476', expires => '+1h');
get_cookie(%params)- get cookie by name-
Paramters: cookie name
Returns cookie value by it's name
my $sess = $self->get_cookie('sessid');
param($name)- CGI request parameter-
Paramters: CGI parameter name
Returns: CGI parameter value
This method returns CGI parameter value by it's name.
my $cost = $self->param('cost');
url_param($name)- CGI request parameter-
Paramters: URL parameter name
Returns: URL parameter value
This method works similar to
param()method, but returns only parameters from the query string.my $action = $self->url_param('a');
http($http_field)- request HTTP header-
Paramters: request header name
Returns: header value
This method returns HTTP request header value by name.
my $beer = $self->http('X-Beer');
https($https_field)- request HTTPS header-
This method returns HTTPS request header value by name and is almost the same as
http()method except of it works with SSL requests.my $beer = $self->https('X-Beer');
raw_cookie()- get raw cookie data-
Just proxying
"raw_cookie()"method from CGI.pm
user_agent()- User-Agent request header-
my $ua_info = $self->user_agent();
request_method()- HTTP request method-
if ($self->request_method eq 'POST') {$self->log("info", "Something POST'ed from client");}
script_name()- CGI script name-
Returns: script name from CGI.pm
path_info()- get PATH_INFO value-
if ($self->path_info eq '/help') {$self->data('Help yourself');}
remote_host()- remote (client) host name-
warn "Client from: " . $self->remote_host();
remote_addr()- remote (client) IP address-
Returns: IP address of client from REMOTE_ADDR environment
if ($self->remote_addr eq '10.0.0.1') {$self->data('Welcome people from our gateway!');}
_set_req_cookies()- fetching request cookies (internal method)-
Fetching cookies from HTTP request to object
"req_cookies"variable.
Examples
See "samples" catalog for more example code.
Releases
8 releases since Debian 6.0 (Squeeze); the text changed 3 times.