شرح صفوف ومحتوى الفقرة
تُمثل سياسات النماذج Policies المعمارية القياسية لتفويض صلاحيات الموارد في Laravel 12. ومن خلال الجمع بين الاكتشاف التلقائي في مجلد app/Policies ودوال $user->can و Gate::authorize، تبقى قواعد الأمان لكل نموذج معزولة وقابلة للاختبار بسهولة.
| وجه المقارنة الهندسي | الأسلوب اليدوي أو غير المحسن | معيار Laravel 12 الحديث |
|---|---|---|
| تنظيم قواعد النماذج | تكديس عشرات الدوال المغلقة داخل AppServiceProvider | إنشاء كلاس سياسة مستقل لكل نموذج في مجلد app/Policies |
| تسجيل السياسات | ربط كل نموذج بسياسته يدوياً في مصفوفات الإعدادات | الاعتماد على الاكتشاف التلقائي القياسي في Laravel 12 |
| فحص صلاحية الإنشاء | إنشاء كائن نموذج فارغ ومؤقت لتمريره لدالة الفحص | تمرير اسم الكلاس Post::class مباشرة لدالة can أو authorize |
| عرض العام والمسودات | تكرار دوال العرض في المتحكم للزوار والأعضاء | استخدام المعامل الاختياري ?User داخل دالة view في السياسة |
PHP
// In PostController:
public function destroy(Post $post)
{
Gate::authorize('delete', $post);
$post->delete();
return to_route('posts.index');
}
خلاصة المعرفة ومحطة الانتقال
ملخص الدرس
حصاد الدرسمراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي
ماذا تعلّمت في هذا الدرس؟
أتقنت في هذا الدرس حول «إنشاء وتسجيل سياسات النماذج Policies في Laravel» مفاهيم توليد كلاسات سياسات النماذج Policy، والاكتشاف التلقائي لسياسات النماذج، وكتابة دوال صلاحيات الموارد CRUD وفق معايير Laravel 12 الحديثة.
الخطوة التالية والدرس القادم
انتقل الآن إلى الدرس التالي «تطبيق الصلاحيات بتوجيهات Can وتحصين أمان تطبيقات Laravel» للبناء التراكمي على ما تعلمته.