6.1 · حالات عملية موجهة

المستوى 6 · في الممارسة

6.1حالات عملية موجهة

الهدف: تحويل الإتقان التقني لـ PHP إلى منعكسات إنتاج موثوقة وآمنة وقابلة للصيانة.
الوقت المقدّر: 14 دقيقة · إذا كان لديك 5 دقائق فقط: اقرأ «الأساسي في 30 ثانية» + المخطط.

الأساسي في 30 ثانية

  • التثبيت : CRUD « اليدوي » يتسلسل هيكلة ← PDO ← توثيق ← استعلامات محضرة (prepared statements) ← هروب عند العرض (htmlspecialchars) ‏+ رمز CSRF ← تحقق.
  • التصنيع : واجهة REST (API REST) مع إطار عمل تضيف Eloquent ونقاط JSON ورموزاً واختبارات على هذه الأسس.
  • التسليم : أسرار في متغيرات البيئة (Environment variables)، وOPcache، وGit ‏+ CI/CD حتى الإنتاج.

خيط رياد — بعد سنة : ورشتان تعملان في قسنطينة

رياد، مطور ويب في قسنطينة، يراجع ورشتيه الأبرز في السنة : التطبيق المصغر لإدارة المقالات مع حسابات المستخدمين الذي بناه « يدوياً » لتثبيت الأسس، ثم واجهة REST (API REST) للمنتجات تحت Laravel تستهلكها واجهة أمامية منفصلة. الحالتان أدناه تستعيدان تسلسله : تنظيم، وربط، وتوثيق، وتأمين، وتوثيق الموثوقية، وتسليم.

كل حالة تتبع السياق ← الخطوات ← النتيجة : أعد تنفيذها على مشاريعك.

تركيب اللبنات معاً

وضعت المستويات السابقة اللبنات (اللغة، والويب، والجلسات، وPDO، والبرمجة كائنية التوجه (POO)، وComposer، والأمن، وMVC، وأطر العمل، والواجهات، والاختبارات، والنشر (Deployment)) ؛ هنا نركبها في ظروف حقيقية : ننطلق من حاجة ملموسة، ونهيكل، ونؤمن، ونوثق الموثوقية ونسلم. حالتان مفصلتان من الألف إلى الياء.

الحالة 1 — CRUD آمن « يدوياً » (تطبيق مصغر)

السياق: بناء تطبيق إدارة صغير (قائمة مقالات مع حسابات مستخدمين) بـ PHP « يدوياً »، لتثبيت الأسس قبل أطر العمل.

Déroulé :

  1. التنظيم (N2.3) : هيكلة ملفات (إعداد، وترويسة/تذييل، وصفحات)، ونقطة دخول واحدة، وأسرار خارج المستودع (متغيرات البيئة).
  2. ربط القاعدة (N3.1) : PDO مركزي (وضع الاستثناء، وUTF-8)، وجدول مقالات وجدول مستخدمين.
  3. التوثيق (N2.2) : تسجيل/دخول بكلمات مرور مجزأة (التجزئة (hachage) ‏/ password_hash)، وجلسة متجددة، وصفحات محمية، وتفويض (كل واحد ومقالاته).
  4. CRUD آمن (N3.1) : إنشاء/قراءة/تعديل/حذف عبر الاستعلام المحضر (prepared statement) ‏(أبداً بالدمج).
  5. تأمين العرض والنماذج (N3.4) : الهروب عند العرض (htmlspecialchars) ‏(XSS)، ورمز CSRF في النماذج، والتحقق من المدخلات في الخادم.
  6. التحقق : لا بيانات مدمجة في SQL، ولا بيانات معروضة دون هروب، وأسرار خارج الشيفرة.

النتيجة: تطبيق مصغر يعمل وآمن (CRUD، وحسابات، واستعلامات محضرة، وهروب، وCSRF) — أسس متقنة، وقاعدة لاستعمال إطار عمل بعده.

الحالة 2 — واجهة REST (API REST) مع إطار عمل (Laravel)

السياق: عرض واجهة REST (API REST) لمورد (منتجات)، تستهلكها واجهة أمامية منفصلة أو تطبيق جوال، مع توثيق بالرموز.

Déroulé :

  1. وضع المشروع (N3.3/N4.2) : Laravel عبر Composer، وهيكلة MVC، وترحيل (Migration) لجدول المنتجات.
  2. النمذجة (N4.2) : نموذج Eloquent منتج (ORM — كائنات بدل SQL، واستعلامات محضرة تلقائية).
  3. نقاط REST (N4.4) : GET /api/produits ‏(سرد)، وGET /{id}، وPOST ‏(إنشاء، 201)، وPUT ‏(تعديل)، وDELETE — ردود JSON ورموز حالة صحيحة.
  4. التوثيق (N4.4) : رموز (JWT / نظام توثيق الواجهة في إطار العمل)، تُتحقق في كل طلب ؛ وHTTPS إجباري.
  5. توثيق الموثوقية (N4.5) : التحقق من المدخلات، وتدبير نظيف للأخطاء (رموز/JSON)، واختبارات (PHPUnit) على النقاط.
  6. التسليم (N5) : إعداد/أسرار بمتغيرات البيئة، وOPcache، والنشر عبر Git ‏+ CI/CD ‏(اختبارات قبل النشر).

النتيجة: واجهة REST (API REST) مهيكلة، وآمنة (رموز، وHTTPS)، ومختبرة ومنشورة — المُسلَّم المركزي للبنى الحديثة (واجهة منفصلة، وجوال)، باستغلال إنتاجية إطار العمل وأمنه.

خطأ شائع في الفهم: « نسخ الحالات حرفياً ». خطأ. الحالات تُظهر ترتيب تركيب (تنظيم، وربط، وتوثيق، وتأمين، وتوثيق الموثوقية، وتسليم)، لا وصفة للنسخ : استعد الترتيب، وكيّف المورد وإطار العمل والاستضافة مع مشروعك.
نص المخطط (SEO / قارئات الشاشة / الترجمة): السلسلة الكاملة : 1) التنظيم (ملفات منطقية، ونقطة دخول، وأسرار خارج المستودع). 2) الربط (PDO مركزي، ووضع الاستثناء، وUTF-8). 3) التوثيق (password_hash، وجلسة متجددة، وتفويض). 4) CRUD باستعلامات محضرة، وعرض مُهرَّب، وCSRF. ‏5) التحقق (صفر دمج SQL، وصفر عرض خام). 6) التصنيع (Laravel، وEloquent، ونقاط JSON، ورموز، وPHPUnit) ثم التسليم (متغيرات البيئة، وOPcache، وGit ‏+ CI/CD). الدرس : الأسس « اليدوية » تجعل إطار العمل آمناً، لا العكس.

نص جاهز للقول — تأطير مشروع PHP قبل الترميز (30 ثانية)

« حاجتنا : [إدارة مقالات مع حسابات]. أسسنا : [PDO ‏+ استعلامات محضرة + هروب + CSRF]. ننظم الملفات، ونجزئ كلمات المرور، ونتحقق قبل المرور إلى إطار العمل، ونسلم حتى النشر. »

نموذج نسخ ولصق — قراءة وعرض آمنان (PDO ‏+ هروب)

 PDO::ERRMODE_EXCEPTION]
);
$stmt = $pdo->prepare("SELECT id, titre FROM articles WHERE user_id = :uid ORDER BY id DESC");
$stmt->execute(["uid" => $utilisateurId]);
foreach ($stmt as $article) {
    echo "
  • " . htmlspecialchars((string) $article["titre"], ENT_QUOTES, "UTF-8") . "
  • "; }

    شركة صغيرة جداً / ميزانية صغيرة

    حالة واحدة معادة التنفيذ على حاجة بسيطة : CRUD بمورد واحد، واستضافة مشتركة، ونشر Git مباشر.

    شركة صغيرة ومتوسطة في قسنطينة

    تكييف النشر مع الواقع المحلي : مضيف متاح، وذروات نشاط، ونسخ احتياطية ومرجع معين.

    عن بعد / هجين

    مضاعفة التتبع عن بعد : متغيرات بيئة موثقة، وخط أنابيب CI/CD ووصول مكتوب.

    بين الثقافات

    التحقق من الاستعمالات المحلية قبل نقل حالة : يجب أن تخاطب التسميات والأدوار وقواعد التفويض الفريق.

    حذر: تذكير عام : الأسرار (كلمات مرور القاعدة، والمفاتيح) وبيانات المستخدمين تُحمّلك المسؤولية — ضعها في متغيرات بيئة لا تُنسخ أبداً، وأعد توليد كل مفتاح مكشوف واعرض على المرجع المعين ؛ هذا الدليل لا يقدم رأياً قانونياً.

    تحدي 48 ساعة — طبّق غداً

    خذ مشروعاً حقيقياً واحداً واكتب سلسلته في 6 أوقات (تنظيم ← ربط ← توثيق ← تأمين ← توثيق الموثوقية ← تسليم). حدد الخطوة التالية.

    قائمة الخروج من القسم
    • أعرف تركيب اللبنات في تطبيق كامل، يدوياً ثم مع إطار عمل.
    • عندي نموذج PDO ‏+ هروب قابل لإعادة التنفيذ لمشروعي.
    • أنجزت تحدي 48 ساعة أو برمجت تاريخه.
    تقييم ذاتي 1-5 : تسلسل الخطوات ؟الأمن والتسليم مغطيان ؟
    تحقّق من فهمك

    رياد يبني تطبيقه المصغر للمقالات « يدوياً ». أي تسلسل يحترم الدليل ؟