Is wrapping session access in a class a common practice in PHP development?

Wrapping session access in a class is a common practice in PHP development as it helps encapsulate session-related functionality, making it easier to manage and maintain session data throughout the application. This approach also promotes code reusability and improves code organization.

class SessionManager {
    public function __construct() {
        session_start();
    }

    public function set($key, $value) {
        $_SESSION[$key] = $value;
    }

    public function get($key) {
        return $_SESSION[$key] ?? null;
    }

    public function remove($key) {
        unset($_SESSION[$key]);
    }

    public function destroy() {
        session_destroy();
    }
}

// Example usage
$session = new SessionManager();
$session->set('user_id', 123);
$user_id = $session->get('user_id');
$session->remove('user_id');
$session->destroy();