From b6a6142b9c192f757e98422c5fd21df979c4a650 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Wed, 9 Sep 2026 13:48:16 +0200 Subject: [PATCH 1/3] IBX-12046: Removed Symfony 8 deprecated code usage Added #[HasNamedArguments] constructor to the RichText validator constraint (mirrors Symfony's own 7.4 constraint pattern), preserving BC for the legacy options-array signature via a deprecation notice. No other Symfony 8 deprecation patterns (Request::get(), voters, OptionsResolver nested defaults, etc.) are present in this repository. --- src/lib/Validator/Constraints/RichText.php | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/lib/Validator/Constraints/RichText.php b/src/lib/Validator/Constraints/RichText.php index 9dba8084..f4c4405c 100644 --- a/src/lib/Validator/Constraints/RichText.php +++ b/src/lib/Validator/Constraints/RichText.php @@ -8,6 +8,7 @@ namespace Ibexa\FieldTypeRichText\Validator\Constraints; +use Symfony\Component\Validator\Attribute\HasNamedArguments; use Symfony\Component\Validator\Constraint; /** @@ -16,4 +17,31 @@ class RichText extends Constraint { public string $message = 'Invalid value'; + + /** + * @param array|null $options Deprecated options array + * @param array|null $groups + */ + #[HasNamedArguments] + public function __construct( + ?array $options = null, + ?string $message = null, + ?array $groups = null, + mixed $payload = null + ) { + if ($options !== null) { + trigger_deprecation( + 'ibexa/fieldtype-richtext', + '6.0', + 'Passing an options array to "%s" is deprecated, use named arguments instead.', + static::class + ); + + $message ??= $options['message'] ?? null; + } + + parent::__construct(null, $groups, $payload); + + $this->message = $message ?? $this->message; + } } From bed39a71fa59ee65b4cc4b31597609da5d4e51e3 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Fri, 11 Sep 2026 13:43:55 +0200 Subject: [PATCH 2/3] IBX-12046: Dropped the options-array constructor path from the RichText constraint 6.0 is a major and Symfony 8 removes options-array support from Constraint itself; every caller in the organisation (this package, fieldtype-page, site-context) instantiates the constraint without arguments. --- src/lib/Validator/Constraints/RichText.php | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/src/lib/Validator/Constraints/RichText.php b/src/lib/Validator/Constraints/RichText.php index f4c4405c..972bc565 100644 --- a/src/lib/Validator/Constraints/RichText.php +++ b/src/lib/Validator/Constraints/RichText.php @@ -19,27 +19,14 @@ class RichText extends Constraint public string $message = 'Invalid value'; /** - * @param array|null $options Deprecated options array * @param array|null $groups */ #[HasNamedArguments] public function __construct( - ?array $options = null, ?string $message = null, ?array $groups = null, mixed $payload = null ) { - if ($options !== null) { - trigger_deprecation( - 'ibexa/fieldtype-richtext', - '6.0', - 'Passing an options array to "%s" is deprecated, use named arguments instead.', - static::class - ); - - $message ??= $options['message'] ?? null; - } - parent::__construct(null, $groups, $payload); $this->message = $message ?? $this->message; From d90861e32b2762ecb8358e1f60b812712be7e099 Mon Sep 17 00:00:00 2001 From: Dawid Parafinski Date: Mon, 14 Sep 2026 12:41:26 +0200 Subject: [PATCH 3/3] IBX-12046: Made RichText constraint final --- src/lib/Validator/Constraints/RichText.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/Validator/Constraints/RichText.php b/src/lib/Validator/Constraints/RichText.php index 972bc565..a9a2f50b 100644 --- a/src/lib/Validator/Constraints/RichText.php +++ b/src/lib/Validator/Constraints/RichText.php @@ -14,7 +14,7 @@ /** * @Annotation */ -class RichText extends Constraint +final class RichText extends Constraint { public string $message = 'Invalid value';