Volver a la página principal
martes 11 febrero 2025
4

Hooks en Propiedades en PHP 8.4

Los hooks en propiedades son una nueva característica introducida en PHP 8.4, permitiendo ejecutar lógica personalizada al leer, escribir o modificar propiedades de una clase. Esto facilita la validación, el formateo y otras operaciones sin necesidad de métodos setters y getters manuales.

¿Cómo funcionan los hooks en propiedades?

En PHP 8.4, puedes definir hooks en propiedades usando los nuevos modificadores get, set y unset. Esto permite interceptar el acceso a las propiedades y ejecutar código específico en cada operación.

Sintaxis básica

class Usuario {
    public string $nombre;
    
    public function __construct(public string $email) {}

    public string $password {
        get {
            return "Acceso denegado";
        }
        set ($valor) {
            if (strlen($valor) < 8) {
                throw new Exception("La contraseña debe tener al menos 8 caracteres.");
            }
            $this->password = password_hash($valor, PASSWORD_DEFAULT);
        }
    }
}

Explicación

1. get: Se ejecuta cuando se accede a la propiedad.

2. set: Se ejecuta cuando se asigna un valor a la propiedad.

3. unset: Permite definir una acción al eliminar una propiedad.

Ejemplos de uso

Validación automática de valores

class Producto {
    public int $precio {
        set ($valor) {
            if ($valor < 0) {
                throw new Exception("El precio no puede ser negativo.");
            }
            $this->precio = $valor;
        }
    }
}

Encriptación de datos

class Cliente {
    public string $telefono {
        set ($valor) {
            $this->telefono = base64_encode($valor);
        }
        get {
            return base64_decode($this->telefono);
        }
    }
}
Etiquetas:
php
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer