كاتاليست (برنامج)

كاتاليست هو إطار عمل مفتوح المصدر لتطبيقات الويب مكتوب بلغة بيرل . يتبع كاتاليست بنية نموذج-عرض-متحكم (MVC) ويدعم عددًا من أنماط الويب التجريبية. كُتب باستخدام موس ، وهو نظام كائنات حديث للغة بيرل. تصميمه مستوحى بشكل كبير من أطر عمل مثل روبي أون ريلز ، ومايبول ، وسبرينغ .

يُمكن لمطوري تطبيقات الويب استخدام Catalyst للتعامل مع الشيفرة البرمجية المشتركة بين جميع تطبيقات الويب. فهو يوفر واجهة لاستقبال طلبات الصفحات، وتوجيهها إلى الشيفرة البرمجية التي يكتبها المطورون لمعالجتها، وإعادة هذه الطلبات. كما يوفر Catalyst واجهة موحدة لنماذج البيانات، والمصادقة، وإدارة الجلسات، وغيرها من عناصر تطبيقات الويب الشائعة.

يتم تنفيذ جميع هذه العناصر كملحقات لمجموعة من الواجهات المشتركة، مما يسمح للمطور بتغيير الطريقة المحددة المستخدمة (على سبيل المثال، تخزين الجلسة في الذاكرة المشتركة مقابل جدول قاعدة البيانات، أو استخدام FastCGI مقابل العمل داخل mod_perl الخاص بـ Apache) عن طريق تغيير تكوين Catalyst لاستخدام ملحق مختلف دون تغيير كود التطبيق.

يتم توزيع Catalyst بشكل أساسي من خلال CPAN ، وهي قناة التوزيع الرسمية لمكتبات وتطبيقات Perl.

تاريخ

كان مايبول أحد أوائل أطر عمل تطبيقات الويب للغة البرمجة بيرل، والذي استند إلى نمط MVC ؛ وكان مؤلفه الرئيسي سيمون كوزنز. [ 2 ] بدأ كاتاليست كنسخة معدلة من مايبول، وكان من المفترض أن يصبح مايبول 3.0. [ 3 ] إلا أن تطوير مايبول توقف مع آخر إصدار له في أبريل 2008، [ 4 ] وأصبح كاتاليست هو البديل الحديث المدعوم له.

صدرت النسخة التجريبية الأولى من برنامج Catalyst في 28 يناير 2005. ونُشرت النسخة الرسمية الأولى على موقع CPAN في 16 فبراير 2005. [ 5 ] وبحلول يونيو 2011، بلغ عدد المساهمين المسجلين في Catalyst 201 مساهمًا. [ 6 ]

فلسفة

يعتمد Catalyst على مبدأ " عدم تكرار نفسك " (DRY)، ما يعني أنه يجب تعريف الدوال مرة واحدة فقط. يمكن استخدام Catalyst مع التحميل التلقائي للفئات من قاعدة البيانات عبر إحدى وحدات التحميل العديدة، وبالتالي لا يتطلب ذلك كتابة أي كود لطبقة قاعدة البيانات. ولكن، إذا كنت ترغب في مرونة تنفيذ كل شيء يدويًا، فهذا خيار متاح أيضًا. ومن المبادئ التوجيهية الأخرى لـ Catalyst المرونة.

يشجع برنامج Catalyst على إعادة استخدام وحدات Perl الموجودة التي تعالج بالفعل مشاكل تطبيقات الويب الشائعة بشكل جيد.

  • يتم التعامل مع جزء النموذج من خلال DBIx :: Class و Plucene و Net::LDAP وفئات النماذج الأخرى.
  • عادةً ما يتم التعامل مع طبقة العرض بواسطة Template Toolkit أو Mason أو HTML ::Template ، من بين أمور أخرى.
  • بطبيعة الحال ، تتم كتابة طبقة التحكم بواسطة كل مطور تطبيق. ويمكن عادةً تأجيل أجزاء كبيرة من وظائف التحكم إلى أحد مكونات Catalyst الإضافية العديدة (مثل Catalyst::Plugin::FormValidator و Catalyst::Plugin::Prototype و Catalyst::Plugin::Account::AutoDiscovery، إلخ).
  • وأخيرًا، يوفر Catalyst مجموعة من الأدوات المساعدة لتبسيط التحكم في التدفق وتعيين عناوين URL لأساليب وحدة التحكم.

يحتوي Catalyst على مجموعة كبيرة من الإضافات. [ 7 ] على سبيل المثال، يوفر إمكانية توليد جافا سكريبت لتقنية Ajax وتطبيقات الإنترنت الغنية (RIA) باستخدام وحدة Catalyst::Plugin::Prototype ( حيث أن Prototype هو إطار عمل لتقنية Ajax ). تغطي الإضافات مجالات عديدة، مثل المصادقة، وإدارة الجلسات، والتفاوض عبر HTTP، وREST.

يمكن أيضًا استخدام Catalyst مع أطر عمل Ajax الأخرى مثل jQuery أو YUI ، مكتبة واجهة المستخدم الخاصة بـ Yahoo !.

دعم خادم الويب

لأغراض التطوير والاختبار، يتضمن Catalyst خادم HTTP بسيطًا مدمجًا. أما للاستخدام في بيئة الإنتاج، فيُنصح باستخدام Apache أو lighttpd أو Hiawatha أو Cherokee أو Nginx مع دعم FastCGI أو mod_perl ، ولكن أي خادم ويب يدعم CGI أو FastCGI سيفي بالغرض. مع Apache، يُمكن لـ mod_perl تحسين الأداء بشكل ملحوظ، إلا أن استخدامه قد يُثير بعض المشاكل نظرًا لعدم أمان مشاركة تطبيقات متعددة ضمنه.

منذ أوائل عام 2008، أصبح بالإمكان نشر تطبيقات Catalyst باستخدام محرك HTTP::Prefork [ 8 ] ، الذي يتيح نشر تطبيقات Catalyst عالية الأداء دون الحاجة إلى خادم ويب منفصل. ابتداءً من إصدار Catalyst 5.9، يدعم Catalyst أيضًا مواصفات PSGI ، مما يسمح بتشغيله على أي خادم Plack ، بالإضافة إلى أي خادم أو بروتوكول يدعم مواصفات PSGI، بما في ذلك Mongrel2 .

دعم قواعد البيانات

يمكن تشغيل Catalyst باستخدام أي قاعدة بيانات يدعمها DBI الخاص بلغة Perl (وهذا يعني تقريبًا أي شيء، حتى ملف CSV )، ولكن يُوصى باستخدام نظام إدارة قواعد بيانات علائقية (RDBMS ) أو نظام إدارة قواعد بيانات تنظيمية (ODBMS) مناسب. يتم تجريد الوصول إلى قاعدة البيانات بالكامل من وجهة نظر المبرمج، ويتولى Catalyst، من خلال إحدى فئات النموذج الخاصة به، إدارة الوصول إلى جميع قواعد البيانات تلقائيًا  - مع إمكانية استخدام استعلامات SQL مباشرة عند الحاجة . يتيح ذلك حيادية قاعدة البيانات، وقابلية نقل التطبيق بين أنظمة قواعد البيانات المختلفة، وإمكانية استخدام قواعد البيانات الموجودة مسبقًا لتطوير تطبيقات Catalyst قدر الإمكان، مع العلم أنه نظرًا لاختلاف مجموعات الميزات في أنظمة إدارة قواعد البيانات العلائقية، فإن الإطار وحده لا يضمن ذلك بشكل كامل. يدعم Catalyst العديد من أنظمة إدارة قواعد البيانات العلائقية المختلفة، بما في ذلك MySQL و PostgreSQL و SQLite و IBM Db2 و Oracle و Microsoft SQL Server . أما بالنسبة لأنظمة إدارة قواعد البيانات التنظيمية، فيوجد دعم صريح لـ KiokuDB عبر Catalyst::Model::KiokuDB. [ 9 ] يسمح تجريد النموذج بالوصول إلى قواعد البيانات من أي نوع عبر Catalyst::Model::Adaptor. [ 10 ]

تستخدم العديد من المشاريع القائمة على Catalyst فئة DBIx::Class كطبقة ORM ، والتي توفر تجريدًا إضافيًا لاستعلامات SQL، باستخدام واجهة برمجة تطبيقات قائمة على مجموعة النتائج مع دعم شفاف لعمليات الربط العشوائية والميزات الأخرى.

الاستخدامات

تشمل المواقع الإلكترونية التي تعمل بتقنية Catalyst كلاً من Magazines.com ، [ 11 ] و bbc.co.uk ( الواجهة الخلفية لـ iPlayer)، [ 12 ] ومنصة مجتمع DuckDuckGo ، و http://flexibase.io ( مؤرشف في 1 سبتمبر 2016 على Wayback Machine) ، و Tripwolf.com . محرك ويكي MojoMojo مكتوب باستخدام Catalyst. [ 13 ]

كان موقع YouPorn مدعومًا بواسطة Catalyst [ 14 ] حتى عام 2012. [ 15 ]

انظر أيضاً

مراجع

  • ديمينت، كيرين (8 يوليو 2009). الدليل الشامل لبرنامج كاتاليست . دار نشر أبريس. رقم ISBN 978-1-4302-2365-8أُرشف من الأصل بتاريخ 17 سبتمبر 2009. تم الاطلاع عليه بتاريخ 9 سبتمبر 2009 .
  1. "إصدار وحدة CPAN" . كاتاليست . تم الاطلاع عليه بتاريخ 15 أغسطس 2024 .
  2. سيمون كوزنز (22 أبريل 2004). "نشر سريع لتطبيقات الويب باستخدام Maypole" . بيرل.
  3. الدليل الشامل لبرنامج Catalyst . دار نشر Apress . سبتمبر 2009. صفحة 2. رقم ISBN  978-1430223658.
  4. "عمود مايو" . CPAN .
  5. "ملف تغييرات المحفز" . تم الاطلاع عليه بتاريخ 8 أغسطس 2018 .
  6. "إطار عمل كاتاليست - المساهمون" . أوهلوه . مؤرشف من الأصل في 6 يوليو 2012. تم الاطلاع عليه في 6 يونيو 2011 .
  7. "ابحث عن "Catalyst::Plugin::" - metacpan.org" . metacpan.org . تم الاطلاع عليه بتاريخ 8 أغسطس 2018 .
  8. "Catalyst::Engine::HTTP::Prefork - محرك Catalyst عالي الأداء للتفرع المسبق - metacpan.org" . metacpan.org . تم الاطلاع عليه بتاريخ 8 أغسطس 2018 .
  9. "Catalyst::Model::KiokuDB - استخدم KiokuDB في تطبيقات Catalyst الخاصة بك - metacpan.org" . metacpan.org . تم الاطلاع عليه بتاريخ 8 أغسطس 2018 .
  10. "Catalyst::Model::Adaptor - استخدام فئة عادية كنموذج Catalyst - metacpan.org" . metacpan.org . تم الاطلاع عليه بتاريخ 8 أغسطس 2018 .
  11. "إعلان وظيفة "مطور Catalyst/DBIC/التجارة الإلكترونية" . 8 مايو 2011. مؤرشف من الأصل بتاريخ 13 مايو 2011. تم الاطلاع عليه بتاريخ 6 يونيو 2011 .
  12. "يتم تشغيل iPlayer الخاص بـ BBC بواسطة حزمة برامج Perl (بما في ذلك Catalyst)" .
  13. ديمينت، كيرين؛ تراوت، مات س (2009). "كتاب طبخ كاتاليست". الدليل الشامل لكاتاليست . أبريس. ص 278-281 . ISBN  978-1-4302-2365-8.
  14. "أكبر موقع إباحي على الإنترنت YouPorn مدعوم من Perl/Catalyst (ضمن أفضل 50 موقعًا في تصنيف Alexa)" . reddit .
  15. "تمت كتابة حزمة برامج YouPorn في الأصل بلغة Perl + Mysql" . 2 أبريل 2012.
  • أرشيف الموقع الرسمي
  • ويكي كاتاليست
  • المحفز على CPAN