From 59ceab8185c035a693c54c7299b09a5ad4f7eb9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Munsch?= Date: Mon, 17 Aug 2026 09:42:21 +0200 Subject: [PATCH] refactor: clean up redundant readonly property modifiers and harmonize EntityId constructors --- .../Models/ValueObjects/Employees/ArcadiaEmployeeId.php | 4 +++- src/Domain/Models/ValueObjects/EstablishmentCode.php | 2 +- .../ValueObjects/Inco/Composition/IncoCompositionId.php | 4 +++- src/Domain/Models/ValueObjects/Inco/IncoId.php | 4 +++- src/Domain/Models/ValueObjects/Inco/Nutriscore.php | 2 +- src/Domain/Models/ValueObjects/ServiceId.php | 2 +- src/Domain/Models/ValueObjects/SiteId.php | 2 +- src/Shared/DDD/EntityId.php | 4 ++-- 8 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/Domain/Models/ValueObjects/Employees/ArcadiaEmployeeId.php b/src/Domain/Models/ValueObjects/Employees/ArcadiaEmployeeId.php index 29f2bc9..2fd24d4 100644 --- a/src/Domain/Models/ValueObjects/Employees/ArcadiaEmployeeId.php +++ b/src/Domain/Models/ValueObjects/Employees/ArcadiaEmployeeId.php @@ -11,8 +11,10 @@ final readonly class ArcadiaEmployeeId extends EntityId private const string PATTERN = '/^\d{7,8}$/'; public function __construct( - public readonly string $value + string $value ) { + parent::__construct($value); + if (! preg_match(self::PATTERN, $value)) { throw new \DomainException( "Invalid value '{$value}' does not match pattern " . self::PATTERN diff --git a/src/Domain/Models/ValueObjects/EstablishmentCode.php b/src/Domain/Models/ValueObjects/EstablishmentCode.php index e7dbfa3..8b439ae 100644 --- a/src/Domain/Models/ValueObjects/EstablishmentCode.php +++ b/src/Domain/Models/ValueObjects/EstablishmentCode.php @@ -9,7 +9,7 @@ final readonly class EstablishmentCode private const string PATTERN = '/^[\dA-Z]{2,}$/'; public function __construct( - public readonly string $value + public string $value ) { if (! preg_match(self::PATTERN, $value)) { throw new \DomainException( diff --git a/src/Domain/Models/ValueObjects/Inco/Composition/IncoCompositionId.php b/src/Domain/Models/ValueObjects/Inco/Composition/IncoCompositionId.php index 152eb89..5eb80d7 100644 --- a/src/Domain/Models/ValueObjects/Inco/Composition/IncoCompositionId.php +++ b/src/Domain/Models/ValueObjects/Inco/Composition/IncoCompositionId.php @@ -11,8 +11,10 @@ final readonly class IncoCompositionId extends EntityId private const string PATTERN = '/^\d{1,}$/'; public function __construct( - public readonly string $value + string $value ) { + parent::__construct($value); + if (! preg_match(self::PATTERN, $value)) { throw new \DomainException( "Invalid value '{$value}' does not match pattern " . self::PATTERN diff --git a/src/Domain/Models/ValueObjects/Inco/IncoId.php b/src/Domain/Models/ValueObjects/Inco/IncoId.php index 98da50c..011f10d 100644 --- a/src/Domain/Models/ValueObjects/Inco/IncoId.php +++ b/src/Domain/Models/ValueObjects/Inco/IncoId.php @@ -11,8 +11,10 @@ final readonly class IncoId extends EntityId private const string PATTERN = '/^\d{1,}$/'; public function __construct( - public readonly string $value + string $value ) { + parent::__construct($value); + if (! preg_match(self::PATTERN, $value)) { throw new \DomainException( "Invalid value '{$value}' does not match pattern " . self::PATTERN diff --git a/src/Domain/Models/ValueObjects/Inco/Nutriscore.php b/src/Domain/Models/ValueObjects/Inco/Nutriscore.php index dddc39f..7e98950 100644 --- a/src/Domain/Models/ValueObjects/Inco/Nutriscore.php +++ b/src/Domain/Models/ValueObjects/Inco/Nutriscore.php @@ -14,7 +14,7 @@ final readonly class Nutriscore public const array VALID_GRADES = ['A', 'B', 'C', 'D', 'E']; public function __construct( - public readonly string $grade, + public string $grade, ) { if (! in_array($this->grade, self::VALID_GRADES, true)) { throw new \DomainException( diff --git a/src/Domain/Models/ValueObjects/ServiceId.php b/src/Domain/Models/ValueObjects/ServiceId.php index 6b4a9aa..5dd4f48 100644 --- a/src/Domain/Models/ValueObjects/ServiceId.php +++ b/src/Domain/Models/ValueObjects/ServiceId.php @@ -12,7 +12,7 @@ final readonly class ServiceId private const string PATTERN = '/^\d{1,}$/'; public function __construct( - public readonly string $value + public string $value ) { if (! preg_match(self::PATTERN, $value)) { throw new \DomainException( diff --git a/src/Domain/Models/ValueObjects/SiteId.php b/src/Domain/Models/ValueObjects/SiteId.php index 58d883a..d6a46d7 100644 --- a/src/Domain/Models/ValueObjects/SiteId.php +++ b/src/Domain/Models/ValueObjects/SiteId.php @@ -12,7 +12,7 @@ final readonly class SiteId private const string PATTERN = '/^[A-Z]{2,}$/'; public function __construct( - public readonly string $value + public string $value ) { if (! preg_match(self::PATTERN, $value)) { throw new \DomainException( diff --git a/src/Shared/DDD/EntityId.php b/src/Shared/DDD/EntityId.php index df531c1..5ddceea 100644 --- a/src/Shared/DDD/EntityId.php +++ b/src/Shared/DDD/EntityId.php @@ -7,9 +7,9 @@ namespace Shared\DDD; abstract readonly class EntityId implements \Stringable, Equatable { public function __construct( - public readonly string $value + public string $value ) { - if (empty($value) || trim($value) === '') { + if (trim($value) === '') { throw new \DomainException('EntityId value cannot be empty'); } }