I'm always excited to take on new projects and collaborate with innovative minds.

Phone

+20 115 052 9992

Website

https://ibrahimahmed.online/

Social Links

تطوير تطبيقات سطح المكتب (Desktop Apps) باستخدام PHP: هل ده حقيقة؟

تطوير تطبيقات سطح المكتب (Desktop Apps) باستخدام PHP: هل ده حقيقة؟ لو إنت مبرمج PHP وبتشتغل بـ Laravel، أكيد في لحظة من اللحظات حسيت بـ "عقدة النقص" لما بتشوف م

تطوير تطبيقات سطح المكتب (Desktop Apps) باستخدام PHP: هل ده حقيقة؟
Reading Count: 2

تطوير تطبيقات سطح المكتب (Desktop Apps) باستخدام PHP: هل ده حقيقة؟

لو إنت مبرمج PHP وبتشتغل بـ Laravel، أكيد في لحظة من اللحظات حسيت بـ "عقدة النقص" لما بتشوف مبرمجي C# أو Swift بيعملوا برامج Desktop للمستخدمين بتوعهم بضغطة زر. دايماً بنكون محصورين في متصفح الإنترنت، ولو فكرنا نعمل Desktop App بنضطر نتعلم Electron ونبدأ ندخل في دوامة Node.js اللي ممكن تكون بعيدة عن دماغنا وتفكيرنا كلارفيل (Laravel).

لكن النهاردة الكلام ده اتغير تماماً بفضل NativePHP. في المقال ده، هناخدك في رحلة عملية عشان تعرف إزاي تبني تطبيق سطح مكتب حقيقي يشتغل على ويندوز (Windows) وماك (macOS) باستخدام المهارات اللي عندك بالفعل، ومن غير ما تضطر تقلب "فرونت إند ديفلوبر" عشان تشغل تطبيقك.

يعني إيه NativePHP؟

باختصار شديد، NativePHP هو إطار عمل (Framework) بيخليك تستخدم PHP وLaravel عشان تبني تطبيقات Native لسطح المكتب. السحر هنا مش إنك بتستخدم Electron لوحدك، لأ، الفكرة إن NativePHP بياخد Laravel وبيربطها بـ Electron أو Tauri تحت الغطاء، فإنت بتكتب PHP، وهو بيترجم ده لتطبيق Desktop كامل المزايا.

الميزة الكبيرة هنا إنك بتقدر تستخدم الـ Database بتاعتك، الـ Models، والـ Routes، وحتى الـ Queues، وكل ده جوه نافذة ويندوز أو ماك بدون ما تحتاج سيرفر خارجي.

الخطوة الأولى: التجهيز (Environment Setup)

قبل أي حاجة، محتاج تتأكد إن جهازك جاهز. طبعاً لازم يكون عندك PHP 8.1 أو أحدث، وComposer، ويفضل طبعاً Laravel مشروع جاهز. عشان نبدأ نركب NativePHP، بنفتح التيرمينال بتاعنا ونكتب الأمر البسيط ده:

composer require nativephp/electron

بعد ما يخلص، محتاجين نعمل "Install" للإعدادات الأساسية اللي هتربط تطبيقنا بـ Electron:

php artisan native:install

الأمر ده هيعمل شوية ملفات جديدة في مشروعك، زي ملفات الإعدادات ومجلد جديد خاص بـ NativePHP، وده اللي هيتحكم في شكل النافذة وحجمها وتصرفات التطبيق.

الخطوة الثانية: كتابة الكود الخاص بـ NativePHP

دلوقتي إحنا جوه Laravel، فإزاي هنخلي التطبيق يفتح نافذة؟ الموضوع أبسط مما تتخيل. في ملف AppServiceProvider أو أي Service Provider تانية، تقدر تستخدم الـ Facades الخاصة بـ NativePHP عشان تتحكم في الـ Window.

use Native\Laravel\Facades\Window;

Window::open('main')
    ->width(800)
    ->height(600)
    ->showDevTools(true);

هنا إحنا بنقول للتطبيق: "يا سيدي، افتح لي نافذة اسمها main بحجم 800 في 600". وتقدر كمان تبعت ليها رابط (URL) لـ Route موجود عندك في ملف web.php عادي جداً.

الخطوة الثالثة: التعامل مع الـ Native OS

القوة الحقيقية بتيجي لما تبدأ تستخدم ميزات النظام نفسه. يعني مثلاً، عايز تعمل "Menu" فوق في شريط القوائم؟ أو عايز تعمل "Notification" تظهر للمستخدم؟ كل ده متاح بـ PHP:

use Native\Laravel\Facades\MenuBar;

MenuBar::create()
    ->icon(public_path('icon.png'))
    ->withContextMenu([
        MenuItem::link('Open Dashboard', '/dashboard'),
        MenuItem::separator(),
        MenuItem::quit(),
    ]);

تخيل إنك بتعمل الحاجات دي بـ PHP! ده بيخلي تجربة المستخدم (User Experience) في تطبيقك احترافية جداً، ومن غير ما تلمس سطر JavaScript واحد لو مش حابب.

تحديات ومميزات الـ Native Development

لازم تكون واقعي، NativePHP لسه مشروع طموح وقوي، لكنه بيعتمد في الأساس على Electron. ده معناه إن تطبيقك ممكن ياخد شوية من الـ RAM، ودي ضريبة "سهولة التطوير". لكن في المقابل، سرعة التطوير (Development Speed) اللي هتاخدها مقارنة بأي لغة تانية لا تُقارن.

  • السرعة: إنت بتستخدم مهاراتك الموجودة في Laravel.
  • التوافقية: التطبيق بيشتغل على Windows, macOS, Linux بدون تعديلات كبيرة.
  • البيئة: مفيش حاجة اسمها "مش شغال عندي"، لأن البيئة بتاعتك محزومة جوه التطبيق.

نصيحة من أخ لمبرمج زيه

نصيحتي ليك، بلاش تفكر في NativePHP كأنك بتعمل موقع ويب وبتحطه جوه نافذة. فكر فيه كأنك بتبني "أداة" (Tool) بتخدم المستخدم، بتستفيد من الـ File System، وبتتفاعل مع الـ OS. ابدأ بمشروع صغير، أداة تكرار مهام (Automation Tool) مثلاً، أو لوحة تحكم محلية لمشروعك، وشوف السحر بنفسك.

المجال ده لسه في بدايته، ولو أتقنته دلوقتي، هتكون من أوائل الناس اللي بتقدم حلول سطح مكتب احترافية بلغة PHP اللي إحنا بنحبها. استمر في التجربة، واغلط، وصلح، لأن ده هو الطريق الوحيد للاحتراف.


Share

Related posts

Jun 11, 2026 • 1 min read
Reading Count: 9
إزاي تأمن الـ Data Models في PHP 8.4 باستخدام ميزة Asymmetric Visibility

إزاي تأمن الـ Data Models في PHP 8.4 باستخدام ميزة Asymmetric Visibility أكيد مريت بالموقف ده كتير و...

Jun 10, 2026 • 1 min read
Reading Count: 11
تشغيل Laravel على الـ Edge: السر وراء السرعة الفائقة مع Laravel Cloud و FrankenPHP

تشغيل Laravel على الـ Edge: السر وراء السرعة الفائقة مع Laravel Cloud و FrankenPHP يا أهلاً بيك يا ص...

Jun 10, 2026 • 1 min read
Reading Count: 10
مستقبل PHP 8.4: إزاي الـ Property Hooks هتغير طريقة كتابتنا للكود

مستقبل PHP 8.4: إزاي الـ Property Hooks هتغير طريقة كتابتنا للكود لو كنت مبرمج PHP بقالك فترة، أكيد...