на практике это означает, что все свойства этого класса будут доступны только для чтения. Это особенно полезно при использовании DTO или объектов-значений (Value Object), когда класс имеет только общедоступные свойства для чтения .
Другими словами, вместо того, чтобы писать это:
class PostDTO
{
public function __construct(
public readonly string $title,
public readonly Status $status,
public readonly ?DateTimeImmutable $published_at = null,
) {}
}
можно теперь писать:
readonly class PostDTO
{
public function __construct(
public string $title,
public Status $status,
public ?DateTimeImmutable $published_at = null,
) {}
}
более подробно можно почитать в новом посте https://sergeymukhin.com/blog/php-82-klassy-tolko-dlia-cteniia-readonly-classes