CGI :: emulate :: PSGI - อะแดปเตอร์ PSGI สำหรับ CGI
my $app = CGI::Emulate::PSGI->handler(sub {
# Existing CGI code
});
โมดูลนี้ช่วยให้แอปพลิเคชันที่ออกแบบมาเพื่อให้สภาพแวดล้อม CGI ทำงานในสภาพแวดล้อม PSGI และบนแบ็กเอนด์ใด ๆ ที่ PSGI รองรับ
มันทำงานได้โดยการแปลสภาพแวดล้อมที่ได้รับจากข้อกำหนดของ PSGI เป็นหนึ่งเดียวที่คาดหวังจากข้อกำหนด CGI ในทำนองเดียวกันมันจะจับเอาต์พุตตามที่เตรียมไว้สำหรับมาตรฐาน CGI และแปลเป็นรูปแบบที่คาดหวังสำหรับมาตรฐาน PSGI โดยใช้ CGI :: Parse :: PSGI โมดูล
หากแอปพลิเคชันของคุณใช้ CGI ให้แน่ใจว่าได้ทำความสะอาดตัวแปรระดับโลกในตัวจัดการลูปด้วยตัวเองดังนั้น:
my $app = CGI::Emulate::PSGI->handler(sub {
use CGI;
CGI::initialize_globals();
my $q = CGI->new;
# ...
});
มิฉะนั้นตัวแปรคำขอก่อนหน้านี้จะถูกนำกลับมาใช้ใหม่ในคำขอใหม่
หรือคุณสามารถติดตั้งและใช้ CGI :: Compile จาก CPAN และรวบรวมสคริปต์ 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);
สร้างการอ้างอิงรหัสแอปพลิเคชัน PSGI จากการอ้างอิงรหัส CGI
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]
Tatsuhiko Miyagawa
ลิขสิทธิ์ (c) 2009-2010 โดย Tokuhirom
โปรแกรมนี้เป็นซอฟต์แวร์ฟรี คุณสามารถแจกจ่ายซ้ำและ/หรือแก้ไขภายใต้ข้อกำหนดเดียวกันกับ Perl เอง
ข้อความทั้งหมดของใบอนุญาตสามารถพบได้ในไฟล์ใบอนุญาตที่รวมอยู่ในโมดูลนี้
psgi cgi :: compile cgi :: psgi plack cgi :: parse :: psgi