CGI :: MUTULE :: PSGI - PSGI Adapter for 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 :: التجميع من 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);
ينشئ مرجع رمز تطبيق PSGI من مرجع رمز CGI.
MUTULES_ENVIRENMENT
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 :: تجميع CGI :: PSGI PLACK CGI :: PARSE :: PSGI