Added WebGUI::Requestion/Response
This commit is contained in:
parent
2516ff12c1
commit
72017cf83f
5 changed files with 60 additions and 8 deletions
11
README
Normal file
11
README
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
This is the PSGI branch of WebGUI8
|
||||
|
||||
Currently, the best performance is achieved via:
|
||||
|
||||
plackup eg/basic.psgi -E none -s Starman --workers 10
|
||||
|
||||
You can benchmark your server via:
|
||||
|
||||
ab -t 3 -c 10 -k http://dev.localhost.localdomain:5000/ | grep Req
|
||||
|
||||
I'm currently getting 20 requests/second, whereas I'm getting 30/second on the non-PSGI WebGUI8 branch.
|
||||
|
|
@ -1,5 +1,7 @@
|
|||
package WebGUI::Session::Plack;
|
||||
|
||||
# This file is deprecated - keeping it here for reference until everything has been ported
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Carp;
|
||||
|
|
@ -25,8 +25,8 @@ use WebGUI::Config;
|
|||
use WebGUI::Pluggable;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::User;
|
||||
use WebGUI::Request;
|
||||
use Moose;
|
||||
use Plack::Request;
|
||||
|
||||
has root => ( is => 'ro', isa => 'Str', default => '/data/WebGUI' );
|
||||
has site => ( is => 'ro', isa => 'Str', default => 'dev.localhost.localdomain.conf' );
|
||||
|
|
@ -69,11 +69,11 @@ around BUILDARGS => sub {
|
|||
};
|
||||
|
||||
sub BUILD {
|
||||
my $self = shift;
|
||||
|
||||
# Instantiate the WebGUI::Config object
|
||||
my $config = WebGUI::Config->new( $self->root, $self->site );
|
||||
$self->config( $config );
|
||||
my $self = shift;
|
||||
|
||||
# Instantiate the WebGUI::Config object
|
||||
my $config = WebGUI::Config->new( $self->root, $self->site );
|
||||
$self->config($config);
|
||||
}
|
||||
|
||||
sub psgi_app {
|
||||
|
|
@ -86,7 +86,7 @@ sub compile_psgi_app {
|
|||
|
||||
my $app = sub {
|
||||
my $env = shift;
|
||||
my $request = Plack::Request->new($env); # This could also be WebGUI::Request
|
||||
my $request = WebGUI::Request->new($env);
|
||||
my $response = $self->dispatch($request);
|
||||
return $response;
|
||||
};
|
||||
|
|
@ -119,7 +119,7 @@ sub dispatch {
|
|||
my $config = $self->config;
|
||||
|
||||
# determine session id
|
||||
my $sessionId = $request->cookies->{$config->getCookieName};
|
||||
my $sessionId = $request->cookies->{$config->getCookieName};
|
||||
|
||||
# Instantiate the session object
|
||||
my $session = $self->session( WebGUI::Session->open($self->root, $config, $request, $sessionId) );
|
||||
|
|
|
|||
29
lib/WebGUI/Request.pm
Normal file
29
lib/WebGUI/Request.pm
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
package WebGUI::Request;
|
||||
|
||||
=head2 DESCRIPTION
|
||||
|
||||
The WebGUI server response object. See L<Plack::Response>
|
||||
|
||||
=cut
|
||||
|
||||
use parent qw(Plack::Request);
|
||||
use WebGUI::Response;
|
||||
|
||||
=head1 METHODS
|
||||
|
||||
=head2 new_response ()
|
||||
|
||||
Creates a new L<WebGUI::Response> object.
|
||||
|
||||
N.B. A L<WebGUI::Response> object is automatically created when L<WebGUI::Session>
|
||||
is instantiated, so in most cases you will not need to call this method.
|
||||
See L<WebGUI::Session/response>
|
||||
|
||||
=cut
|
||||
|
||||
sub new_response {
|
||||
my $self = shift;
|
||||
WebGUI::Response->new(@_);
|
||||
}
|
||||
|
||||
1;
|
||||
10
lib/WebGUI/Response.pm
Normal file
10
lib/WebGUI/Response.pm
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
package WebGUI::Response;
|
||||
use parent qw(Plack::Response);
|
||||
|
||||
=head2 DESCRIPTION
|
||||
|
||||
The WebGUI server response object. See of L<Plack::Response>
|
||||
|
||||
=cut
|
||||
|
||||
1;
|
||||
Loading…
Add table
Add a link
Reference in a new issue