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.
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.
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);
}
}
}
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.
class Producto {
public int $precio {
set ($valor) {
if ($valor < 0) {
throw new Exception("El precio no puede ser negativo.");
}
$this->precio = $valor;
}
}
}
class Cliente {
public string $telefono {
set ($valor) {
$this->telefono = base64_encode($valor);
}
get {
return base64_decode($this->telefono);
}
}
}
Jorge García
Fullstack developer