چند مزیت مهم:
• تعریف role و permission در دیتابیس، نه هاردکد 🧱
• متدهای آماده روی مدل User مثل:
hasRole ،can• Middleware برای محدود کردن routeها
• هماهنگ با Gate/Policy خود لاراول
نصب و راهاندازی سریع:
composer require spatie/laravel-permission
php artisan vendor:publish \
--provider\=\"Spatie\\Permission\\PermissionServiceProvider\"
php artisan migrate
// در مدل User:
use Spatie\\Permission\\Traits\\HasRoles;
class User extends Authenticatable
{
use HasRoles;
}
// استفاده در کد:
$user->assignRole('admin');
if ($user->can('edit articles')) {
// ...
}
در پروژههای تیمی، این پکیج جلوی کلی if بیمنطق و duplication را میگیرد و مدیریت پنل ادمین، سطح دسترسی API و نقشهای مختلف (admin, editor, support) را تمیز میکند. ✨
مستندات رسمی:
Docs
GitHub
امتحانش در یک پروژه واقعی حس خوبی از نظم و کنترل روی Authorization میدهد. 😉
🔖 #Laravel #PHP #لاراول #Laravel #spatie #laravel_permission #PHP #Authorization #Role #Permission
👤 Developix
💎 Channel: @DevelopixLaravel