6.3ممارسات جيدة وفخاخ
الأساسي في 30 ثانية
- القاعدة الذهبية : شيفرة نظيفة، وشك منهجي في المدخلات، وهيكلة وتسليم — الأمان يدفع، أبداً السرعة الخام.
- للقيام : === وstrict_types، واستعلامات محضرة + هروب، وMVC + Composer، وpassword_hash + .env، وPHPUnit، وقياس ثم تسليم.
- للتجنب : دمج SQL، وعرض خام، وأسرار مكشوفة، وتحقق العميل وحده، واختبارات مهملة، وأخطاء مكشوفة.
خيط رياد — ثلاث عادات تدفع
بعد سنة، يقوم رياد بحصيلته : ما عدّ أكثر ليس إطار عمل، بل ثلاث عادات — المقارنة بالصارم والتنميط، وتحضير كل استعلام وهروب كل عرض، والتسليم حتى النهاية باختبارات ونشر. وأكبر فخ نجا منه بأعجوبة : كلمة مرور مخزنة مكشوفة خلال أسبوع ضغط.
اختر عادة واحدة لتثبيتها في طقسك، ثم انتقل إلى التالية.
ما يصنع الفرق
الفرق بين ترقيع وممارسة محترفة لا يكمن في الأدوات، بل في المنعكسات : كتابة شيفرة نظيفة، وعدم الثقة أبداً بالمدخلات، والهيكلة، والاختبار والتسليم.
✓ للقيام
- كتابة PHP حديث : === افتراضياً، والتنميط (declare(strict_types=1))، ودوال بمسؤولية واضحة.
- عدم الثقة أبداً بالمدخلات : التحقق في الخادم، واستعلامات محضرة، والهروب عند العرض.
- الهيكلة (MVC، وفصل المنطق/العرض) واستغلال Composer (التحميل التلقائي، ومكتبات مجربة).
- تجزئة كلمات المرور (التجزئة (hachage) / password_hash)، وحماية الأسرار (متغيرات البيئة)، وHTTPS، والتفويض.
- كتابة اختبارات (PHPUnit) على المنطق الحرج ؛ والقياس قبل التحسين.
- الاستناد إلى أطر العمل (حمايات افتراضية) والتسليم حتى النهاية (نشر، وCI/CD).
✗ للتجنب
- دمج بيانات في SQL (حقن) أو عرض بيانات خام (XSS).
- تخزين كلمة مرور مكشوفة أو سر في مستودع Git.
- الاعتماد على تحقق العميل (قابل للالتفاف) ؛ وخلط المنطق والعرض (معكرونة).
- إهمال الاختبارات (« يعمل ») وترك تراجعات صامتة.
- التحسين المبكر بدل القياس والاستهداف ؛ والإفراط الهندسي.
- عرض الأخطاء المفصلة في الإنتاج (كشف معلومات).
نص جاهز للقول — التحقق من ممارستي قبل التسليم (30 ثانية)
« strict_types و=== ؟ مدخلات متحقق منها في الخادم، وSQL محضر، وعرض مُهرَّب، وCSRF ؟ وpassword_hash، وأسرار في .env، وHTTPS، وتفويض ؟ وPHPUnit أخضر، وأخطاء مسجلة ؟ إن كان جواب لا، أصحح قبل التسليم. »
نموذج نسخ ولصق — تسجيل آمن (تجزئة + محضرة)
prepare("INSERT INTO users (email, hash) VALUES (:email, :hash)");
$stmt->execute(["email" => $email, "hash" => $hash]);
function verifier(string $saisi, string $hash): bool {
return password_verify($saisi, $hash);
}
شركة صغيرة جداً / ميزانية صغيرة
عادة واحدة في الفصل تكفي : استعلامات محضرة أولاً، والباقي بعدها.
شركة صغيرة ومتوسطة في قسنطينة
تكييف الطقوس مع الذروات والتنقلات : موعد مراجعة الشيفرة والاختبارات معقود كل أسبوع.
عن بعد / هجين
الانضباط رقم 1 عن بعد : مراجعات مكتوبة واختبارات خضراء، حتى للتصحيحات الصغيرة.
بين الثقافات
التحقق من الاستعمالات المحلية بدل الافتراض : قاعدة تفويض غير معتادة يجب أن تنبه في كل مكان.
تحدي 48 ساعة — طبّق غداً
مرر صفحتك الرئيسية على الغربال : صفر دمج SQL، وصفر عرض خام، وصفر سر منسخ. صحح أول فرق تجده.
- أعرف المنعكسات للقيام والفخاخ للتجنب.
- تحققت من نقاطي الحرجة الـ 3 (SQL، والعرض، والأسرار).
- أنجزت تحدي 48 ساعة أو برمجت تاريخه.
قبل التسليم، يتحقق رياد من ممارسته. أي منعكس يحميه أفضل ؟
القاعدة الذهبية : مطور PHP الجيد ليس من يرمز بأسرع، بل من تطبيقاته نظيفة وآمنة وقابلة للصيانة ومسلمة فعلاً في الإنتاج.