6.1حالات عملية موجهة
الأساسي في 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é :
- التنظيم (N2.3) : هيكلة ملفات (إعداد، وترويسة/تذييل، وصفحات)، ونقطة دخول واحدة، وأسرار خارج المستودع (متغيرات البيئة).
- ربط القاعدة (N3.1) : PDO مركزي (وضع الاستثناء، وUTF-8)، وجدول مقالات وجدول مستخدمين.
- التوثيق (N2.2) : تسجيل/دخول بكلمات مرور مجزأة (التجزئة (hachage) / password_hash)، وجلسة متجددة، وصفحات محمية، وتفويض (كل واحد ومقالاته).
- CRUD آمن (N3.1) : إنشاء/قراءة/تعديل/حذف عبر الاستعلام المحضر (prepared statement) (أبداً بالدمج).
- تأمين العرض والنماذج (N3.4) : الهروب عند العرض (htmlspecialchars) (XSS)، ورمز CSRF في النماذج، والتحقق من المدخلات في الخادم.
- التحقق : لا بيانات مدمجة في SQL، ولا بيانات معروضة دون هروب، وأسرار خارج الشيفرة.
النتيجة: تطبيق مصغر يعمل وآمن (CRUD، وحسابات، واستعلامات محضرة، وهروب، وCSRF) — أسس متقنة، وقاعدة لاستعمال إطار عمل بعده.
الحالة 2 — واجهة REST (API REST) مع إطار عمل (Laravel)
السياق: عرض واجهة REST (API REST) لمورد (منتجات)، تستهلكها واجهة أمامية منفصلة أو تطبيق جوال، مع توثيق بالرموز.
Déroulé :
- وضع المشروع (N3.3/N4.2) : Laravel عبر Composer، وهيكلة MVC، وترحيل (Migration) لجدول المنتجات.
- النمذجة (N4.2) : نموذج Eloquent منتج (ORM — كائنات بدل SQL، واستعلامات محضرة تلقائية).
- نقاط REST (N4.4) : GET /api/produits (سرد)، وGET /{id}، وPOST (إنشاء، 201)، وPUT (تعديل)، وDELETE — ردود JSON ورموز حالة صحيحة.
- التوثيق (N4.4) : رموز (JWT / نظام توثيق الواجهة في إطار العمل)، تُتحقق في كل طلب ؛ وHTTPS إجباري.
- توثيق الموثوقية (N4.5) : التحقق من المدخلات، وتدبير نظيف للأخطاء (رموز/JSON)، واختبارات (PHPUnit) على النقاط.
- التسليم (N5) : إعداد/أسرار بمتغيرات البيئة، وOPcache، والنشر عبر Git + CI/CD (اختبارات قبل النشر).
النتيجة: واجهة REST (API REST) مهيكلة، وآمنة (رموز، وHTTPS)، ومختبرة ومنشورة — المُسلَّم المركزي للبنى الحديثة (واجهة منفصلة، وجوال)، باستغلال إنتاجية إطار العمل وأمنه.
نص جاهز للقول — تأطير مشروع 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 ساعة أو برمجت تاريخه.
رياد يبني تطبيقه المصغر للمقالات « يدوياً ». أي تسلسل يحترم الدليل ؟