بلاك (برنامج)

مثال على البرمجة النصية من جانب الخادم باستخدام Perl و Plack و PSGI.

بلاك هو إطار عمل برمجي لتطبيقات الويب مكتوب بلغة بيرل ، مستوحى من راك للغة روبي و WSGI للغة بايثون ، [ 1 ] [ 2 ] وهو المشروع الذي يقف وراء مواصفات PSGI المستخدمة في أطر عمل أخرى مثل كاتاليست ودانسر . [ 3 ] يتيح بلاك اختبار تطبيقات الويب المكتوبة بلغة بيرل دون الحاجة إلى خادم ويب مباشر. [ 4 ]

Plackup هي أداة سطر أوامر لتشغيل تطبيقات PSGI من سطر الأوامر. [ 5 ]

PSGI

PSGI أو واجهة بوابة خادم الويب في لغة بيرل هي واجهة بين خوادم الويب وتطبيقات الويب وأطر العمل المكتوبة بلغة برمجة بيرل ، وتتيح كتابة تطبيقات محمولة يمكن تشغيلها كخوادم مستقلة أو باستخدام CGI و FastCGI و mod_perl وغيرها. [ 6 ] وهي مستوحاة من واجهة بوابة خادم الويب في بايثون ، و Rack في روبي ، و JSGI في جافا سكريبت . تطبيق PSGI هو روتين فرعي في بيرل يقبل وسيطات كمرجع تجزئة واحد ، ويعيد مرجعًا إلى مصفوفة من ثلاثة عناصر: رمز حالة HTTP ، ومرجع إلى مصفوفة رؤوس HTTP ، ومرجع إلى مصفوفة أسطر نص HTTP (عادةً ما يكون مستند HTML مُنشأ ) أو كائنًا يشبه مُعرّف الملف .

الأنظمة الخلفية المدعومة

اعتبارًا من مايو 2023 [ 7 ] يدعم Plack خوادم الخلفية التالية:

أمثلة

استخدام خادم HTTP المستقل الافتراضي:

$ plackup app.psgi HTTP::Server::PSGI: قبول الاتصالات على http://0:5000/

يعمل كبرنامج خفي FastCGI يستمع على مقبس Unix ، جاهز للاستخدام من قبل أي خادم ويب يدعم FastCGI :

$ plackup -s FCGI -listen /tmp/fcgi.sock app.psgi FastCGI: مدير (معرف العملية 3336): تم التهيئة FastCGI: مدير (معرف العملية 3336): تم بدء تشغيل الخادم (معرف العملية 3337) FastCGI: الخادم (معرف العملية 3337): تم التهيئة

تطبيق "Hello world" يعمل بشكل صحيح من سطر واحد :

$ plackup -e 'sub { [200, ["Content-Type" => "text/plain"], ["Hello, world!"]] }' HTTP::Server::PSGI: قبول الاتصالات على http://0:5000/

يقوم الأمر أعلاه بتشغيل خادم HTTP يستمع على المنفذ 5000 لكل واجهة محلية ( عنوان IP ) ويعيد استجابة 200 OK لكل طلب HTTP :

HTTP / 1.0 200 OK التاريخ : الجمعة، 19 مارس 2010 23:34:10 بتوقيت غرينتش الخادم : HTTP::Server::PSGI نوع المحتوى : نص عادي طول المحتوى : 13 مرحبا بالعالم! 

مراجع

  1. بو، كورتيس (2012). مقدمة في لغة بيرل . جون وايلي وأولاده. ص  484. ISBN 9781118235638تم الاطلاع عليه بتاريخ 29 أكتوبر 2018 .
  2. "PSGI/Plack - Perl Superglue for Web Frameworks and Web Servers" . plackperl.org . تم الاطلاع عليه بتاريخ 9 سبتمبر 2023 .
  3. كويجلي، إيلي (2014). بيرل بالأمثلة . بيرسون للتعليم. ص 586. ISBN  9780133760811تم الاطلاع عليه بتاريخ 29 أكتوبر 2018 .
  4. كروماتيك (2015). بيرل الحديثة ( الطبعة الرابعة). شركة براغماتيك بروجرامرز، ذ.م.م.، ص 134. ISBN   978-1-68050-088-2.
  5. "بلاك اب – metacpan.org" . metacpan.org . تم الاسترجاع في 30 مايو 2023 .
  6. chromatic. "تطوير تطبيقات الويب باستخدام لغة بيرل الحديثة" . modernperlbooks.com .
  7. بلاك :: وحدات المعالج على CPAN