المشكلة :
مطوروا برمجيات الويب يواجهون صعوبة عند عمل برامج سطح مكتب و ذلك بسبب متطلبات برمجة سطح المكتب التى تختلف جزريآ عن برمجيات الويب لأن برمجيات الويب تعتمد على Input Driven Paradigm اما برامج سطح المكتب فتعتمد على Event Driven Paradigm
و فظهرت كثير من الحلول التى تقرب مبرمج الويب من سطح المكتب و من اشهر المشروعات
- Mozilla XUL Runner
- Adobe Air
- PHP GTK+
- PHP Qt
لكن ايآ من الحلول لم يقوم يدمج لغة بى اتش بى , و كأنهم تجاهلوا كل هذا المجتمع من المطورين.
احيانآ احتاج ان اقوم بعمل برنامج لشخص للحسابات او عمل بعض الإختبارات البسيطة فأكون محكوم بان اقوم بعمل سيرفر شخصى و تنصيب MYSQL و ان عليه استخدام المتصفح لديه
وانه كلما حاول تشغيل البرنامج يقوم بفتح السيرفر و فتح المتصفح و كتابة localhost و هى عملية مرهقة لمن لم يتعامل مع السيرفرات من قبل
فكنت اتمنى ان يكون هناك حل بيسط اقوم من خلاله بتشغيل برنامج البى اتش بى بدون عناء كبرامج Adobe Air
و لأننى لم اجد الحل على الإنترنت قمت بعمل الحل بنفسى
حل المشكلة:
الحل يكمن فى مبدأ اساسى, عمل جميع الخطوات التى يقوم بعملها العميل لكن بطريقة اوتوماتيكية
اى اننى اقوم بعمل متصفح للإنترنت يقوم عند فتحه بفتح السيرفر و البى اتش بى و تشغيل الملف الممرر له على هيئة Argument
المشكلة الرئيسية:
هى كيفية الحصول على سيرفر خفيف و ان يكون portable يمكن نقله من مكان لآخر دون إخلال بطريقة عمله
فقمت بإستخدام سيرفر Nginx للأسف لم اجد له binary للينوكس غير باكجات جاهزة وانا اريد الحصور على binaries و كل الملفات المتعلقة فى مجلد واحد دولن تغيير فى النظام فقمت بعمل Compile له
و الحصول على جميع ملفاته و طريقة عمله بالكامل و طريقة تعريف مجلد جديد
و ايضآ قمت بعمل Compile لآخر نسخة من PHP و لكن لأن Nginx غير قادر على تحميل PHP كسيرفر Apache قمت بعمل ال Compile للبى اتش بى كـ Fast CGI ليعمل على Socket
و بذلك يقوم السيرفر بعمل parse للملفات عن طريق هذا الـ Socket
المشكلة التالية هى كيفية عمل متصفح عبارة عن شاشة و بها Rendering Engine مفقط ليظهر مخرجات الصفحة كأنها هى محتويات البرنامج نفسه
قمت بإختيار لغة الجافا مع مكتية SWT لأن بها متصفح يدعم جميع الإنظمة
و المشكلة التالية هى اننى يجب عند فتح ملف PHP ان يقوم البرنامج بمعرفة مسار الملف و إضافته لتعريف السيرفر مع بورت جديد ثم إعادة تحميل السيرفر
ليعمل الملف على المتصفح كأنه موقع localhost ,قمت بعملها
و انا اقدم الملفات التنفيذية للمشروع للمجتمع هنا للتجربة , هذا المشروع سيساعد على
- تعليم اسرع للطلبة للغة PHP لأنهم لن يحتاجوا للتنصيب سيرفر
- سيسعد مبرجمى المواقع بذلك لانه سيمكنه الآن تحويل سكريبتاته كلها - ماعدا التى تعتمد على MySQL - لبرامج تعمل على سطح المكتب
- البرامج سوف تعمل على اكثر من منصة دول تغيير فى الكود لان البرانمج سأنزل منه اكثر من نسخة لأنظمة الأساسية كـAdobe AIR
- المشروع قابل للإتساع بإضافة مكتبات للPHP و للمتصفح بذلك سيعطى قابلية عالية للتطوير و بسهولة للشركات الويب التى تطمح لدخول عالم الديسكتوب بنفس المبرمجين
و الأن الملفات التنفيذية:
- الملفات لنظام لينوكس 32 بت , فى المستقبل سأقوم بتنزيل نسخة لويندوز و ماك, و اعتقد انه يمكن عمله للموبايل لكننى لم ادرس الموضوع بعد
- اقرا ملف README من فضلك لمعرفة المشاكل المعروفة للبرنامج و طريقة التشغيل

