Readonly Properties

PHP 🟡 Mid

Definition

Proprietes PHP 8.1 qui ne peuvent etre initialisees qu'une seule fois, puis deviennent immutables. PHP 8.2 etend cela aux classes entieres avec readonly class.

Analogie

Comme un tatouage : une fois fait, on ne peut plus le modifier.

Exemple de code

readonly class UserDTO {
  public function __construct(
    public string $name,
    public string $email,
  ) {}
}

Cas d'usage

Pour les DTOs et Value Objects ou l'immutabilite garantit l'integrite des donnees.

Anti-pattern

Rendre readonly des proprietes qui doivent legitimement changer apres l'initialisation.
#core#interview#php8