طَبِّقْهاتعلّم المبدأ، وطبّقه بيدكمقرر 301 · من الفكرة إلى المنتج (١): تطبيق ويب متكامل
الدرس 8 · الوحدة 4: التسليم والنشر

المحطّة ٨: النشر على XAMPP والتسليم

الخطوة الأخيرة: منتجٌ يعمل على خادمٍ حقيقيّ، موثّقٌ يشغّله غيرك. ⏱ نحو 22 دقيقة.

بعد هذا الدرس ستستطيع أن:
  • تنشر تطبيق PHP على XAMPP مع MySQL.
  • تبدّل بين SQLite و MySQL بتغيير طبقة الاتصال وحدها.
  • تضبط إعدادات الإنتاج الآمنة وتحمي الأسرار.
  • تجهّز حزمة تسليمٍ وتوثيقًا يمكّن غيرك من تشغيل المنتج.

١من «يعمل في المختبر» إلى «منتجٍ يعمل على خادم»

كتبتَ الكود هنا على SQLite في المتصفّح. الآن ننقله إلى بيئةٍ أقرب للواقع: XAMPP مع Apache وMySQL — وهي البيئة التي تشغّل عليها مشروعك في المعمل وتعرضه للمقيّم.

الفرق بين الكود والمنتج هو هذه الخطوة: أن يعمل على خادمٍ حقيقيٍّ، بقاعدة بياناتٍ حقيقيّة، بإعداداتٍ صحيحة، موثّقًا بحيث يشغّله غيرك.

٢خطوات النشر على XAMPP

  1. ثبّت XAMPP وشغّل Apache وMySQL من لوحة التحكّم.
  2. افتح http://localhost/phpmyadmin، وأنشئ قاعدةً باسم tasks بترميز utf8mb4_unicode_ci.
  3. من تبويب SQL: نفّذ أوامر إنشاء الجدولين (حوّل الأنواع إلى MySQL: INT AUTO_INCREMENT، VARCHAR، DATETIME).
  4. انسخ ملفّات المشروع إلى htdocs/tasks/.
  5. في db.php بدّل سطر SQLite بسطر MySQL: new PDO("mysql:host=localhost;dbname=tasks;charset=utf8mb4", "root", "").
  6. افتح http://localhost/tasks/ وجرّب التسجيل والدخول وإدارة المهامّ.

٣من بيئة التطوير إلى الإنتاج

إعداداتٌ مناسبةٌ للتطوير تصير خطرةً في الإنتاج. راجع هذه قبل التسليم:

الإعدادفي التطويرفي الإنتاج
عرض الأخطاءظاهرة لتصحّحهامخفيّة عن المستخدم، تُسجَّل في ملفّ
مستخدم القاعدةroot بلا كلمةمستخدمٌ خاصٌّ بكلمةٍ قويّةٍ وصلاحياتٍ محدودة
HTTPSغير ضروريّ محليًّامطلوب (كلمات المرور تُرسَل مُعمّاة عبر الشبكة)
بيانات التجربةمستخدمو تجربةتُحذَف قبل الإطلاق

٤حزمة التسليم

مشروعٌ مكتملٌ يُسلَّم بأكثر من كود. جهّز:

حين يستطيع زميلٌ تشغيل مشروعك من الصفر باتّباع README وحده، فقد صار «منتجًا» لا مجرّد كود. هذا هو معنى «من الفكرة إلى المنتج».

توقّع وتحقّق

ما حال عرض الأخطاء في الإنتاج؟

أين توضع كلمة مرور قاعدة البيانات؟

ما الذي يجعل زميلًا يشغّل مشروعك من الصفر؟

لماذا HTTPS مطلوبٌ في الإنتاج؟

الخلاصة

تحدٍّ تصميمي: نشر «مفكّرة مهامّي» وتسليمه

تصميمي

انشر مشروعك على XAMPP مع MySQL، وجهّز حزمة تسليمٍ كاملة. الهدف أن يشغّله زميلٌ من الصفر باتّباع توثيقك وحده.

المطلوب:
  • تشغيل المشروع فعليًّا على XAMPP + MySQL.
  • ملفّ README بخطوات التشغيل وبيانات دخولٍ تجريبيّة.
  • مراجعة إعدادات الإنتاج (الأخطاء، المستخدم، الأسرار).
  • تجميع وثائق المحطّات (متطلّبات، مخطّط، خطة اختبار).
☑ راجع عملك قبل التسليم:
💡 تلميح 1
حوّل أنواع SQLite إلى MySQL: INTEGER PRIMARY KEY ← INT AUTO_INCREMENT PRIMARY KEY، TEXT ← VARCHAR/DATETIME.
💡 تلميح 2
جرّب README بنفسك على جهازٍ نظيف (أو مجلّدٍ جديد) قبل التسليم — إن عمل عندك فسيعمل عند المقيّم.

🐞 لاحظت خطأً في هذا الدرس؟ أبلغني بالبريد

📝 معلم؟ أرسل ملاحظة للمؤلف عن هذا الدرس