CGI :: Emulate :: PSGI -PSGIアダプターのCGI
my $app = CGI::Emulate::PSGI->handler(sub {
# Existing CGI code
});
このモジュールにより、CGI環境がPSGI環境で実行されるために設計されたアプリケーションが可能になり、したがってPSGIがサポートするバックエンドのいずれかで実行できます。
PSGI仕様によって提供される環境をCGI仕様で予想される環境に変換することで機能します。同様に、CGI標準に備えて出力をキャプチャし、CGI :: PARSE :: PSGIモジュールを使用してPSGI標準に予想される形式に変換します。
アプリケーションがCGIを使用している場合は、ハンドラーループのグローバル変数を自分でクリーンアップしてください。
my $app = CGI::Emulate::PSGI->handler(sub {
use CGI;
CGI::initialize_globals();
my $q = CGI->new;
# ...
});
それ以外の場合、以前の要求変数は新しいリクエストで再利用されます。
または、CGI :: CPANからコンパイルをインストールして使用し、既存のCGIスクリプトをコンパイルして、このモジュールを使用してPSGIアプリケーションに変換する準備が完全に準備されているサブにコンパイルできます。
my $sub = CGI::Compile->compile("/path/to/script.cgi");
my $app = CGI::Emulate::PSGI->handler($sub);
これにより、各スクリプトなどに一意の名前空間を割り当てることができます。詳細については、CGI ::コンパイルを参照してください。
また、CGI :: PSGIの使用を検討することもできますが、コードをわずかに変更する必要があります。
my $q = CGI->new;
# ...
print $q->header, $output;
の中へ:
use CGI::PSGI;
my $app = sub {
my $env = shift;
my $q = CGI::PSGI->new($env);
# ...
return [ $q->psgi_header, [ $output ] ];
};
詳細については、CGI :: PSGIを参照してください。
ハンドラ
my $app = CGI::Emulate::PSGI->handler($code);
CGIコードリファレンスからPSGIアプリケーションコードリファレンスを作成します。
emulate_environment
my %env = CGI::Emulate::PSGI->emulate_environment($env);
PSGI環境ハッシュから環境ハッシュを作成します。コードまたはフレームワークには環境変数エミュレーションが必要な場合は、次のような方法を使用します。
local %ENV = (%ENV, CGI::Emulate::PSGI->emulate_environment($env));
# run your application
handlerメソッドを使用してPSGI環境ハッシュを作成する場合、これは作成されたアプリケーションで自動的に呼び出されます。
トクヒロ松井[email protected]
宮沢タツヒコ
Tokuhiromによる著作権(c)2009-2010。
このプログラムはフリーソフトウェアです。 Perl自体と同じ条件で再配布したり、変更したりできます。
ライセンスの全文は、このモジュールに含まれるライセンスファイルに記載されています。
PSGI CGI :: CGI :: PSGI Plack CGI :: parse :: psgi