المحطّة ٨: النشر على XAMPP والتسليم
الخطوة الأخيرة: منتجٌ يعمل على خادمٍ حقيقيّ، موثّقٌ يشغّله غيرك. ⏱ نحو 22 دقيقة.
- تنشر تطبيق
PHPعلىXAMPPمعMySQL. - تبدّل بين
SQLiteوMySQLبتغيير طبقة الاتصال وحدها. - تضبط إعدادات الإنتاج الآمنة وتحمي الأسرار.
- تجهّز حزمة تسليمٍ وتوثيقًا يمكّن غيرك من تشغيل المنتج.
١من «يعمل في المختبر» إلى «منتجٍ يعمل على خادم»
كتبتَ الكود هنا على SQLite في المتصفّح. الآن ننقله إلى بيئةٍ أقرب للواقع: XAMPP مع Apache وMySQL — وهي البيئة التي تشغّل عليها مشروعك في المعمل وتعرضه للمقيّم.
الفرق بين الكود والمنتج هو هذه الخطوة: أن يعمل على خادمٍ حقيقيٍّ، بقاعدة بياناتٍ حقيقيّة، بإعداداتٍ صحيحة، موثّقًا بحيث يشغّله غيرك.
٢خطوات النشر على XAMPP
- ثبّت XAMPP وشغّل Apache وMySQL من لوحة التحكّم.
- افتح
http://localhost/phpmyadmin، وأنشئ قاعدةً باسمtasksبترميزutf8mb4_unicode_ci. - من تبويب SQL: نفّذ أوامر إنشاء الجدولين (حوّل الأنواع إلى MySQL:
INT AUTO_INCREMENT،VARCHAR،DATETIME). - انسخ ملفّات المشروع إلى
htdocs/tasks/. - في
db.phpبدّل سطر SQLite بسطر MySQL:new PDO("mysql:host=localhost;dbname=tasks;charset=utf8mb4", "root", ""). - افتح
http://localhost/tasks/وجرّب التسجيل والدخول وإدارة المهامّ.
٣من بيئة التطوير إلى الإنتاج
إعداداتٌ مناسبةٌ للتطوير تصير خطرةً في الإنتاج. راجع هذه قبل التسليم:
| الإعداد | في التطوير | في الإنتاج |
|---|---|---|
| عرض الأخطاء | ظاهرة لتصحّحها | مخفيّة عن المستخدم، تُسجَّل في ملفّ |
| مستخدم القاعدة | root بلا كلمة | مستخدمٌ خاصٌّ بكلمةٍ قويّةٍ وصلاحياتٍ محدودة |
| HTTPS | غير ضروريّ محليًّا | مطلوب (كلمات المرور تُرسَل مُعمّاة عبر الشبكة) |
| بيانات التجربة | مستخدمو تجربة | تُحذَف قبل الإطلاق |
٤حزمة التسليم
مشروعٌ مكتملٌ يُسلَّم بأكثر من كود. جهّز:
- كود المشروع منظّمًا (مجلّداتٌ واضحة،
db.phpمنفصل). - ملفّ
schema.sqlلإنشاء القاعدة وبياناتٍ تجريبيّةٍ اختياريّة. - ملفّ
README: ما المشروع، ومتطلّباته، وخطوات التشغيل، وبيانات دخولٍ تجريبيّة. - وثيقة المتطلّبات (محطّة 1) ومخطّط البيانات (محطّة 2) وخطة الاختبار (محطّة 7).
حين يستطيع زميلٌ تشغيل مشروعك من الصفر باتّباع README وحده، فقد صار «منتجًا» لا مجرّد كود. هذا هو معنى «من الفكرة إلى المنتج».
توقّع وتحقّق
ما حال عرض الأخطاء في الإنتاج؟
أين توضع كلمة مرور قاعدة البيانات؟
ما الذي يجعل زميلًا يشغّل مشروعك من الصفر؟
لماذا HTTPS مطلوبٌ في الإنتاج؟
الخلاصة
- النشر على
XAMPP: أنشئ قاعدةMySQL، نفّذ المخطّط، بدّل سطر الاتصال، ضع الملفّات فيhtdocs. - طبقة
db.phpتجعل الانتقال منSQLiteإلىMySQLتغييرَ سطرٍ واحد. - الإنتاج يختلف: أخفِ الأخطاء، مستخدمٌ بكلمةٍ قويّة،
HTTPS، احذف بيانات التجربة. - لا ترفع الأسرار داخل الكود؛ ضعها في إعداداتٍ منفصلة.
- حزمة التسليم: كودٌ +
schema.sql + README+ وثائق المحطّات — بها يصير الكود منتجًا.
تحدٍّ تصميمي: نشر «مفكّرة مهامّي» وتسليمه
تصميميانشر مشروعك على XAMPP مع MySQL، وجهّز حزمة تسليمٍ كاملة. الهدف أن يشغّله زميلٌ من الصفر باتّباع توثيقك وحده.
- تشغيل المشروع فعليًّا على
XAMPP + MySQL. - ملفّ README بخطوات التشغيل وبيانات دخولٍ تجريبيّة.
- مراجعة إعدادات الإنتاج (الأخطاء، المستخدم، الأسرار).
- تجميع وثائق المحطّات (متطلّبات، مخطّط، خطة اختبار).
💡 تلميح 1
MySQL: INTEGER PRIMARY KEY ← INT AUTO_INCREMENT PRIMARY KEY، TEXT ← VARCHAR/DATETIME.