أذونات طرق مدعومة بـ Enum في Laravel

قَدَّمَ إطار عمل Laravel تبسيطًا للتحقق من التصريحات في المسارات بإضافة دعم مباشر لقوائم التعداد (Enums) إلى طريقة can().

تتألق هذه الميزة بشكل خاص عند بناء لوحات التحكم الإدارية أو التطبيقات متعددة المستأجرين، حيث يكون إدارة الصلاحيات أمرًا ضروريًا، كما أنها تتيح لك الاستفادة من ميزات أمان الأنواع (Type Safety) في PHP.

Route::get('/admin', function () {
// ...
})->can(Permission::ACCESS_ADMIN);
فيما يلي كيفية تنفيذ التوجيه القائم على الأدوار في لوحة تحكم المسؤولين:
// app/Enums/AdminAccess.php
 
<?php
 
namespace App\Enums;
 
enum AdminAccess: string
{
case VIEW_REPORTS = 'view_reports';
case MANAGE_STAFF = 'manage_staff';
case EDIT_CONFIG = 'edit_config';
}
 
// web.php
Route::prefix('admin')->group(function () {
Route::get('/reports', ReportController::class)
->can(AdminAccess::VIEW_REPORTS);
 
Route::get('/staff', StaffController::class)
->can(AdminAccess::MANAGE_STAFF);
 
Route::post('/config', ConfigController::class)
->can(AdminAccess::EDIT_CONFIG);
});
تصبح تعريفات المسارات أكثر سهولة في الفهم والصيانة:
// Previous approach
->can(AdminAccess::MANAGE_STAFF->value)
// New, cleaner approach
->can(AdminAccess::MANAGE_STAFF)
تُحسّن طريقة can() المُحسّنة توجيهك القائم على الأذونات بشكل أنيق مع الحفاظ على فوائد نظام أنواع PHP.

جميع الحقوق محفوظة © 2025 Laravel | عربي