--- title: > Refactoring with readonly classes in PHP 8.2 pubDate: 2023-04-16 permalink: >- archive/2023/04/16/refactoring-with-readonly-classes-in-php-8-2 tags: - php --- Marian Kostadinov ([stochnagara on Twitter](https://twitter.com/stochnagara)) replied to Friday's email about DTOs and value objects to tell me about `readonly` classes, which can be done in PHP 8.2. Looking at the previous class: ```language-php class AccountDetails { public function __construct( public readonly string $accountNumber, public readonly string $sortCode, ) {} } ``` Instead of setting each property as `readonly`, the whole class can instead be marked as `readonly`: ```language-php readonly class AccountDetails { public function __construct( public string $accountNumber, public string $sortCode, ) {} } ``` Thanks for the suggestion, Marian!