Are there any common PHP frameworks that offer solutions for managing user roles and permissions?

Managing user roles and permissions is a common requirement in web applications to control access to different parts of the system based on user roles. PHP frameworks like Laravel, Symfony, and CodeIgniter offer solutions for managing user roles and permissions through built-in features or third-party packages. These frameworks provide functionalities like middleware, guards, policies, and ACL (Access Control List) to easily implement role-based access control in applications.

// Example code using Laravel's middleware for role-based access control

// Define a middleware to check user roles
namespace App\Http\Middleware;

use Closure;

class CheckRole
{
    public function handle($request, Closure $next, $role)
    {
        if (!auth()->check() || !auth()->user()->hasRole($role)) {
            abort(403, 'Unauthorized');
        }

        return $next($request);
    }
}

// Register the middleware in the app's kernel
// app/Http/Kernel.php
protected $routeMiddleware = [
    'role' => \App\Http\Middleware\CheckRole::class,
];

// Use the middleware in routes
Route::get('/admin', function () {
    // Only users with 'admin' role can access this route
})->middleware('role:admin');