Cgi :: emulle :: psgi - PSGI -Adapter für CGI
my $app = CGI::Emulate::PSGI->handler(sub {
# Existing CGI code
});
Mit diesem Modul kann eine Anwendung für die CGI -Umgebung in einer PSGI -Umgebung und damit auf einen der von PSGI unterstützten Backends ausgeführt werden.
Es funktioniert, indem die Umgebung durch die PSGI -Spezifikation in eine von der CGI -Spezifikation erwartete Umgebung übersetzt wird. Ebenso erfasst es die Ausgabe, wie es für den CGI -Standard vorbereitet wäre, und übersetzt es in das für den PSGI -Standard erwartete Format mit CGI :: Parse :: PSGI -Modul.
Wenn Ihre Bewerbung CGI verwendet, sollten Sie die globalen Variablen in der Handlerschleife selbst aufräumen:
my $app = CGI::Emulate::PSGI->handler(sub {
use CGI;
CGI::initialize_globals();
my $q = CGI->new;
# ...
});
Andernfalls werden frühere Anforderungsvariablen in den neuen Anfragen wiederverwendet.
Alternativ können Sie CGI :: Compile von CPAN installieren und verwenden und Ihre vorhandenen CGI -Skripte in ein Sub zusammenstellen, das mit diesem Modul perfekt für die Konvertierung in die PSGI -Anwendung konvertiert werden kann.
my $sub = CGI::Compile->compile("/path/to/script.cgi");
my $app = CGI::Emulate::PSGI->handler($sub);
Dadurch wird für jedes Skript ein eindeutiger Namespace usw. zugewiesen. Weitere Informationen finden Sie in CGI :: Compile.
Sie können auch in Betracht ziehen, CGI :: PSGI zu verwenden. Sie müssen jedoch Ihren Code leicht ändern:
my $q = CGI->new;
# ...
print $q->header, $output;
hinein:
use CGI::PSGI;
my $app = sub {
my $env = shift;
my $q = CGI::PSGI->new($env);
# ...
return [ $q->psgi_header, [ $output ] ];
};
Siehe CGI :: PSGI für Details.
Handler
my $app = CGI::Emulate::PSGI->handler($code);
Erstellt eine PSGI -Anwendungscodereferenz aus der CGI -Codereferenz.
Emulate_Environment
my %env = CGI::Emulate::PSGI->emulate_environment($env);
Schafft einen Umwelt -Hash aus der PSGI -Umwelt Hash. Wenn Ihr Code oder Ihr Framework nur eine Umgebungsvariablenemulation benötigt, verwenden Sie diese Methode wie:
local %ENV = (%ENV, CGI::Emulate::PSGI->emulate_environment($env));
# run your application
Wenn Sie eine handler -Methode verwenden, um einen PSGI -Umgebungs -Hash zu erstellen, wird dies automatisch in der erstellten Anwendung aufgerufen.
Tokuhiro matsuno [email protected]
Tatsuhiko Miyagawa
Copyright (C) 2009-2010 von Tokuhirom.
Dieses Programm ist kostenlose Software; Sie können es umverteilen und/oder unter den gleichen Bedingungen wie Perl selbst ändern.
Der vollständige Text der Lizenz finden Sie in der Lizenzdatei in diesem Modul.
Psgi cgi :: cgi :: psgi plack cgi :: parse :: psgi