diff --git a/src/Core/Serialization/DOM/NormalizerFactory.php b/src/Core/Serialization/DOM/NormalizerFactory.php index aa192834..9439bb46 100644 --- a/src/Core/Serialization/DOM/NormalizerFactory.php +++ b/src/Core/Serialization/DOM/NormalizerFactory.php @@ -38,15 +38,9 @@ class NormalizerFactory { public const FORMAT = Format::XML; - /** - * @readonly - */ - private Spec $spec; + private readonly Spec $spec; - /** - * @readonly - */ - private DOMDocument $document; + private readonly DOMDocument $document; /** * @throws DomainException when the spec does not support XML format diff --git a/src/Core/Serialization/DOM/_BaseNormalizer.php b/src/Core/Serialization/DOM/_BaseNormalizer.php index d38274c3..b59682a1 100644 --- a/src/Core/Serialization/DOM/_BaseNormalizer.php +++ b/src/Core/Serialization/DOM/_BaseNormalizer.php @@ -33,10 +33,7 @@ */ abstract class _BaseNormalizer { - /** - * @readonly - */ - private NormalizerFactory $normalizerFactory; + private readonly NormalizerFactory $normalizerFactory; public function __construct(NormalizerFactory $normalizerFactory) { diff --git a/src/Core/Serialization/JSON/NormalizerFactory.php b/src/Core/Serialization/JSON/NormalizerFactory.php index f4e7abd7..fce0c17d 100644 --- a/src/Core/Serialization/JSON/NormalizerFactory.php +++ b/src/Core/Serialization/JSON/NormalizerFactory.php @@ -37,10 +37,7 @@ class NormalizerFactory { public const FORMAT = Format::JSON; - /** - * @readonly - */ - private Spec $spec; + private readonly Spec $spec; /** * @throws DomainException when the spec does not support JSON format diff --git a/src/Core/Serialization/JSON/_BaseNormalizer.php b/src/Core/Serialization/JSON/_BaseNormalizer.php index 58afa34a..b5bea743 100644 --- a/src/Core/Serialization/JSON/_BaseNormalizer.php +++ b/src/Core/Serialization/JSON/_BaseNormalizer.php @@ -33,10 +33,7 @@ */ abstract class _BaseNormalizer { - /** - * @readonly - */ - private NormalizerFactory $normalizerFactory; + private readonly NormalizerFactory $normalizerFactory; public function __construct(NormalizerFactory $normalizerFactory) { diff --git a/src/Core/Serialization/JsonSerializer.php b/src/Core/Serialization/JsonSerializer.php index 60b42e33..2ad5e188 100644 --- a/src/Core/Serialization/JsonSerializer.php +++ b/src/Core/Serialization/JsonSerializer.php @@ -39,11 +39,12 @@ class JsonSerializer extends BaseSerializer { /** - * List of allowed options for $jsonEncodeFlags. - * Some flags will break the output... + * List of allowed options for {@see jsonEncodeFlags}. * * Bitmask consisting of JSON_*. * + * Some JSON flags could break the output, so they are not whitelisted. + * * @see https://www.php.net/manual/en/json.constants.php */ private const JsonEncodeFlagsAllowedOptions = 0 @@ -56,6 +57,20 @@ class JsonSerializer extends BaseSerializer | \JSON_UNESCAPED_UNICODE ; + /** + * Defaults of {@see $jsonEncodeFlags}. + * + * Bitmask consisting of JSON_*. + * + * These defaults are required to have valid output in the end. + * + * @see https://www.php.net/manual/en/json.constants.php + */ + private const JsonEncodeFlagsDefaults = 0 + | \JSON_THROW_ON_ERROR // prevent unexpected data + | \JSON_PRESERVE_ZERO_FRACTION // float/double not converted to int + ; + /** * List of mandatory options for $jsonEncodeFlags. * @@ -67,8 +82,7 @@ class JsonSerializer extends BaseSerializer | \JSON_UNESCAPED_SLASHES // urls become shorter ; - /** @readonly */ - private JSON\NormalizerFactory $normalizerFactory; + private readonly JSON\NormalizerFactory $normalizerFactory; /** * Flags for {@see \json_encode()}. @@ -76,14 +90,8 @@ class JsonSerializer extends BaseSerializer * Bitmask consisting of JSON_*. * * @see https://www.php.net/manual/en/json.constants.php - * - * @readonly */ - private int $jsonEncodeFlags = 0 - // These defaults are required to have valid output. - | \JSON_THROW_ON_ERROR // prevent unexpected data - | \JSON_PRESERVE_ZERO_FRACTION // float/double not converted to int - ; + private readonly int $jsonEncodeFlags; /** * @param int $jsonEncodeFlags Bitmask consisting of JSON_*. see {@see JsonEncodeFlagsAllowedOptions} @@ -93,7 +101,8 @@ public function __construct( int $jsonEncodeFlags = self::JsonEncodeFlagsDefaultOptions ) { $this->normalizerFactory = $normalizerFactory; - $this->jsonEncodeFlags |= $jsonEncodeFlags & self::JsonEncodeFlagsAllowedOptions; + $this->jsonEncodeFlags = self::JsonEncodeFlagsDefaults + | ($jsonEncodeFlags & self::JsonEncodeFlagsAllowedOptions); } protected function realNormalize(Bom $bom): array diff --git a/src/Core/Serialization/XmlSerializer.php b/src/Core/Serialization/XmlSerializer.php index a578f6cf..78b36a13 100644 --- a/src/Core/Serialization/XmlSerializer.php +++ b/src/Core/Serialization/XmlSerializer.php @@ -38,13 +38,10 @@ */ class XmlSerializer extends BaseSerializer { - /** @readonly */ - private DOM\NormalizerFactory $normalizerFactory; + private readonly DOM\NormalizerFactory $normalizerFactory; - /** @readonly */ - private string $xmlVersion; - /** @readonly */ - private string $xmlEncoding; + private readonly string $xmlVersion; + private readonly string $xmlEncoding; public function __construct( DOM\NormalizerFactory $normalizerFactory, diff --git a/src/Core/Validation/BaseValidator.php b/src/Core/Validation/BaseValidator.php index a9945aff..4df2f570 100644 --- a/src/Core/Validation/BaseValidator.php +++ b/src/Core/Validation/BaseValidator.php @@ -30,10 +30,7 @@ */ abstract class BaseValidator implements Validator { - /** - * @readonly - */ - private Spec $spec; + private readonly Spec $spec; public function __construct(Spec $spec) { diff --git a/src/Core/Validation/ValidationError.php b/src/Core/Validation/ValidationError.php index b8093fe6..4de9efaa 100644 --- a/src/Core/Validation/ValidationError.php +++ b/src/Core/Validation/ValidationError.php @@ -30,10 +30,7 @@ */ class ValidationError { - /** - * @readonly - */ - private string $message; + private readonly string $message; /** * keep for internal debug purposes.