DeserializeProvider calls PartialDenormalizationException::getErrors(), deprecated in Symfony 8.1
Les mainteneurs répondent en général sous 2 jours
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 76/100
Piste de recherche
Commencez dans src/State/Provider/DeserializeProvider.php, à l’appel situé vers la ligne 110 mentionné dans l’issue. Vérifiez comment le projet prend en charge à la fois Symfony Serializer 7.4 et 8.1, puis exécutez les tests pertinents pour les entrées non valides avec collect_denormalization_errors: true. Le travail est terminé lorsque ces tests réussissent sans la dépréciation de Symfony 8.1 et que Symfony 7.4 reste pris en charge.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
API Platform version(s) affected: 4.3.21 and the current head of 4.4 (5.0 is not affected)
Symfony 8.1 deprecates PartialDenormalizationException::getErrors() in favour of getNotNormalizableValueErrors(). The 4.4 branch still calls it: https://github.com/api-platform/core/blob/4.4/src/State/Provider/DeserializeProvider.php#L110
Since symfony/serializer 8.1: The "Symfony\Component\Serializer\Exception\PartialDenormalizationException::getErrors()" method is deprecated, use "Symfony\Component\Serializer\Exception\PartialDenormalizationException::getNotNormalizableValueErrors()" instead.
Every 422 caused by a denormalization error goes through this line, so with collect_denormalization_errors: true it shows up in each test that sends invalid input. 5.0 no longer has the call, but it went away with the rewrite in #8211, which won't be backported.
Possible solution
In Symfony 8.1 getErrors() only returns getNotNormalizableValueErrors(), so the swap is exact. 4.4 also supports symfony/serializer ^7.4, which doesn't have that method, so the fallback would be needed. Yet the fix seems as trivial as
$errors = method_exists($e, 'getNotNormalizableValueErrors')
? $e->getNotNormalizableValueErrors()
: $e->getErrors();
foreach ($errors as $exception) {
...
- Langage dominant
- PHP
- Étoiles
- 2.6k
- Forks
- 988
- Merge moyen
- 4 j 10 h
- PR mergées (30 j)
- 109
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de api-platform/core
-
API Platform ignores array shapes in the JSON SchemaPeut-être pris @afraca l’a pris il y a 12 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
api-platform/core#8766 ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
api-platform/core#8744 ·
Les mainteneurs répondent en général sous 2 jours
-
JSON:API: resource schemas (`*.jsonapi`) have `properties` but no `type: object`Peut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 2/5 Moins d'une heure Accessibilité débutants 80/100
api-platform/core#8701 ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 4/5 3-5 jours Accessibilité débutants 55/100
api-platform/core#8816 ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 3/5 1-2 jours Accessibilité débutants 66/100
api-platform/core#8815 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours
Toutes les issues de api-platform/core
Issues similaires
-
Captured slideshow pass overwrites the route path, aborting compose with a rebind() TypeErrorOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Automattic/blocks-engine#5003 ·
Les mainteneurs répondent en général sous 1 jour
-
from-cloud mythic tracked
Difficulté 1/5 Moins d'une heure Accessibilité débutants 86/100
MythicalLTD/FeatherPanel#459 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
[Bug]: PostgreSQL backend: Queue.remove() / Job.remove() never emit the QueueEvents "removed" eventPeut-être pris @1AbdullahButt l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
taskforcesh/bullmq#5085 ·
Les mainteneurs répondent en général sous 1 jour
-
area:mesi area:php-extension good first issue priority:low type:chore
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
crazy-goat/go-mesi#652 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
shukiv/jabali-panel#2423 ·
Les mainteneurs répondent en général sous 1 jour