Глосарій

readonly (PHP 8.1)

readonly — модифікатор PHP 8.1, який дозволяє записати властивість лише один раз (у конструкторі) і забороняє будь-які подальші зміни. Ідеальний для Value Objects і DTO — гарантує незмінність без додаткового коду.

Приклад

class Money {
  public function __construct(
    public readonly int    $amount,
    public readonly string $currency,
  ) {}
}

$price = new Money(100, 'UAH');
echo $price->amount;   // 100
$price->amount = 200;  // Error: Cannot modify readonly property

readonly class (PHP 8.2)

PHP 8.2 додав readonly class — всі властивості класу автоматично стають readonly. Не потрібно писати модифікатор для кожної.

readonly class Point {
  public function __construct(
    public float $x,
    public float $y,
  ) {}
}