diff --git a/.gitignore b/.gitignore index a7c4e1c..5c2d360 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ composer.lock coverage/ .phpunit.result.cache +.idea/ diff --git a/composer.json b/composer.json index 57f9e7c..a6551b7 100644 --- a/composer.json +++ b/composer.json @@ -21,10 +21,10 @@ }, "require": { "php": "^7.4|^8.0", - "symfony/form": "^5.4|^6.0", - "symfony/translation": "^5.4|^6.0", - "symfony/serializer": "^5.4|^6.0", - "symfony/validator": "^5.4|^6.0" + "symfony/form": "^5.4|^6.0|^7.0", + "symfony/translation": "^5.4|^6.0|^7.0", + "symfony/serializer": "^5.4|^6.0|^7.0", + "symfony/validator": "^5.4|^6.0|^7.0" }, "require-dev": { "dealerdirect/phpcodesniffer-composer-installer": "^v0.7.2", diff --git a/src/Limenius/Liform/Form/Extension/AddLiformExtension.php b/src/Limenius/Liform/Form/Extension/AddLiformExtension.php index d59e40f..9f804a4 100644 --- a/src/Limenius/Liform/Form/Extension/AddLiformExtension.php +++ b/src/Limenius/Liform/Form/Extension/AddLiformExtension.php @@ -47,7 +47,7 @@ public static function getExtendedTypes(): iterable * * @param OptionsResolver $resolver */ - public function configureOptions(OptionsResolver $resolver) + public function configureOptions(OptionsResolver $resolver): void { $resolver->setDefined(['liform']); } diff --git a/src/Limenius/Liform/Serializer/Normalizer/FormErrorNormalizer.php b/src/Limenius/Liform/Serializer/Normalizer/FormErrorNormalizer.php index 8e8075d..e9db9ab 100644 --- a/src/Limenius/Liform/Serializer/Normalizer/FormErrorNormalizer.php +++ b/src/Limenius/Liform/Serializer/Normalizer/FormErrorNormalizer.php @@ -39,7 +39,7 @@ public function __construct(TranslatorInterface $translator) /** * {@inheritdoc} */ - public function normalize($object, $format = null, array $context = []) + public function normalize(mixed $object, ?string $format = null, array $context = []): float|array|\ArrayObject|bool|int|string|null { return [ 'code' => isset($context['status_code']) ? $context['status_code'] : null, @@ -51,11 +51,19 @@ public function normalize($object, $format = null, array $context = []) /** * {@inheritdoc} */ - public function supportsNormalization($data, $format = null) + public function supportsNormalization(mixed $data, ?string $format = null, array $context = []): bool { return $data instanceof FormInterface && $data->isSubmitted() && !$data->isValid(); } + /** + * {@inheritdoc} + */ + public function getSupportedTypes(?string $format): array + { + return ['object' => true]; + } + /** * This code has been taken from JMSSerializer. * diff --git a/src/Limenius/Liform/Serializer/Normalizer/InitialValuesNormalizer.php b/src/Limenius/Liform/Serializer/Normalizer/InitialValuesNormalizer.php index cd143b5..2b76461 100644 --- a/src/Limenius/Liform/Serializer/Normalizer/InitialValuesNormalizer.php +++ b/src/Limenius/Liform/Serializer/Normalizer/InitialValuesNormalizer.php @@ -27,25 +27,34 @@ class InitialValuesNormalizer implements NormalizerInterface /** * {@inheritdoc} */ - public function normalize($form, $format = null, array $context = []) + public function normalize($object, $format = null, array $context = []): float|array|\ArrayObject|bool|int|string|null { - $formView = $form->createView(); + $formView = $object->createView(); - return $this->getValues($form, $formView); + return $this->getValues($object, $formView); } /** * {@inheritdoc} */ - public function supportsNormalization($data, $format = null) + public function supportsNormalization(mixed $data, ?string $format = null, array $context = []): bool { return $data instanceof Form; } + /** + * {@inheritdoc} + */ + public function getSupportedTypes(?string $format): array + { + return ['object' => true]; + } + /** * Gets the values of the form - * @param Form|FormInterface $form - * @param FormView $formView + * + * @param Form|FormInterface $form + * @param FormView $formView * * @return mixed */ @@ -62,7 +71,7 @@ private function getValues(FormInterface $form, FormView $formView) return $this->normalizeExpandedChoice($formView); } // Force serialization as {} instead of [] - $data = (object) array(); + $data = (object) []; foreach ($formView->children as $name => $child) { // Avoid unknown field error when csrf_protection is true // CSRF token should be extracted another way @@ -85,13 +94,14 @@ private function getValues(FormInterface $form, FormView $formView) /** * Normalize when choice is multiple + * * @param FormView $formView * * @return array */ private function normalizeMultipleExpandedChoice(FormView $formView) { - $data = array(); + $data = []; foreach ($formView->children as $name => $child) { if ($child->vars['checked']) { $data[] = $child->vars['value']; @@ -103,6 +113,7 @@ private function normalizeMultipleExpandedChoice(FormView $formView) /** * Normalize when choice is expanded + * * @param FormView $formView * * @return mixed