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

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