Глоссарий

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, 'RUB');
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,
  ) {}
}