CGI :: Emulate :: PSGI -CGI 용 PSGI 어댑터
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;
# ...
});
그렇지 않으면 이전 요청 변수가 새 요청에서 재사용됩니다.
또는 CPAN에서 CGI :: 컴파일을 설치하고 사용하고 기존 CGI 스크립트를이 모듈을 사용하여 PSGI 애플리케이션으로 완벽하게 변환 할 수있는 서브로 컴파일 할 수 있습니다.
my $sub = CGI::Compile->compile("/path/to/script.cgi");
my $app = CGI::Emulate::PSGI->handler($sub);
이렇게하면 각 스크립트에 대한 고유 한 네임 스페이스를 할당해야합니다. 자세한 내용은 CGI :: Compile을 참조하십시오.
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 환경 해시를 생성하는 경우 작성된 응용 프로그램에서 자동으로 호출됩니다.
Tokuhiro matsuno [email protected]
미야가와 타츠 히코
Tokuhirom의 Copyright (C) 2009-2010.
이 프로그램은 무료 소프트웨어입니다. Perl 자체와 동일한 용어로 재분배하거나 수정할 수 있습니다.
라이센스의 전체 텍스트는이 모듈에 포함 된 라이센스 파일에서 찾을 수 있습니다.
psgi cgi :: compile cgi :: psgi plack cgi :: parse :: psgi