فى البدايه عندما بدأت فى عالم ال frameworks لم استخدم اى framework ولكن بدأت افهم الغرض (الرئيسى) لها عموما

بعدها قمت بعمل PHP Pharaoh ثم تغيرت وانشأت Horus Framework وحتى الان موجوده وفى تطور مستمر

عندما بدأت nodejs يتحول اليها العالم بشده مره واحده خصوصا مجتمعنا العربى

وجدت عندها البعض يقارن بينها وبين python وبين php وبالطبع المقارانات خاطئه من الاساس

لان فى python يوجد tornado لذا فكان من الافضل المقارنه بينها وبين tornado وليست لغه بالكامل !

اما عن php المطورون يتحدثون عنها كانها فى التسعينات ولا يعرفون ما وصلت اليه من مستوى

لكن للاسف التعامل معها مجرد تعامل مع قشور php فعندما تقارن بين nodejs وبين php التى تستخدمها تحت apache فانت تقارن مقارنه خاطئه

لان فى nodejs انت تتعامل مع ال client مباشره بدون اى وسيط اما عن php تحت apache فأنت تتعامل مع mod_php وليست php بالكامل

وكل من تعرف على بنية apache وكيفية عمل mod_php سيعلم انها فى هذا الزمن اصبحت كالجحيم والا لكان تم الاعتماد عليها فى كبرى المواقع

ذلك لان apache يقوم بفتح thread جديده لكل اتصال .. تخيل ان هناك مليون اتصال .. ؟

لذلك ظهرت php fastcgi .. لكن سألت لما لا يوجد مثل nodejs فى php

وطبعا الاجابه ع الويب كله واضحه واجابه روتينيه محفوظه يتم ترديدها فقط

لا تخلوا لغه من العيوب ولكنها ليست كلها مشاكل ! فالمشكله فى كيف تستخدمها انت وليست كيف يستخدمها غيرك !

طبعا المشاكل المعروفه هى

  • non-blocking & asynchronous

لكن المشكله انه مافيش مشكله لان الحلول موجوده "ببحث بسيط"

كل المطلوب هو عمل main loop يتحكم فى كل مايحدث

وهو مابدأت به بعد فهم كيفية عمل nodejs و tornado

وبالفعل بدأته وانهيته لأول مره وجربته وكانت النتائج جيده ..

وبعد فتره بعد ان اردت ان اقوم ببعض التحسينات اضفت الدعم لمكتبة libevent

مكتبه خاصه بنظام التشغيل ولها extension ل php

واصبح النظام الخاص بنا Plus يعتمد عليها "اذا كانت متاحه"

اما اذا كانت غير متاحه فهناك implementation مشابه لفكرة عملها يتم استخدامه وايضا النتائج جيده جدا

بعد نشر اول اصدار منها كان هناك الدهشه ومن شهر الاسئله التى سألت بها

  • هل يعمل بدون apache

  • هل هى non-blocking

  • هل هى single thread

هذا لانها تعتبر شئ غير اعتيادى فى اللغه فانت تعودت على انها مجرد سكربت يعمل تحت بيئه اخرى

ولكنك لم تجرب ان تشغل عقلك

الان هى فى الاصدار ال 1.0.1 بعد ان تم اضافة HTTPD وهى مكتبه خاصه بالتعامل مع HTTP وهى اختصار HTTP Daemon

ومن الخطوات القادمه (دمج Horus Framework العاديه مع Horus Plus)

لكى يكون الناتج Framework ايضا فى ملف واحد منظم جدا يعمل اما مستقل بذاته كـــ Nodejs + ExpressJs أو يعمل بالطريقه التقليديه

تحت اى Webserver عادى كــ apache وغيره


  • التوثيق من هنا: http://alash3al.github.io/Plus

  • اما ال Repo من هنا: https://github.com/alash3al/Plus