Método __sleep
El método __sleep se llama automáticamente al serializar un objeto con la función serialize. Este método debe devolver un array con los nombres de las propiedades que deben incluirse en la representación serializada del objeto.
Sintaxis
public function __sleep(): array;
Ejemplo
Creemos una clase e implementemos el método __sleep para serializar solo ciertas propiedades:
<?php
class User {
public $name = 'John';
public $age = 30;
private $password = '12345';
public function __sleep() {
return ['name', 'age'];
}
}
$user = new User();
echo serialize($user);
?>
Resultado de ejecutar el código:
'O:4:"User":2:{s:4:"name";s:4:"John";s:3:"age";i:30;}'
Ejemplo
Uso de __sleep para excluir datos confidenciales de la serialización:
<?php
class Account {
public $login = 'admin';
private $password = 'secret';
public $email = 'admin@example.com';
public function __sleep() {
return ['login', 'email'];
}
}
$account = new Account();
echo serialize($account);
?>
Resultado de ejecutar el código:
'O:7:"Account":2:{s:5:"login";s:5:"admin";s:5:"email";s:17:"admin@example.com";}'