Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Symfony: Comment valider dynamiquement de la donnée

Symfony: Comment valider dynamiquement de la donnée

Grégoire Pineau

September 30, 2021
Tweet

More Decks by Grégoire Pineau

Other Decks in Programming

Transcript

  1. Symfony: Comment valider dynamiquement de la donnée AFSY SfPots -

    Septembre 2021 - Paris Grégoire Pineau - @lyrixx Dev @JoliCode Core Team @Symfony
  2. Les contraintes “inlines” • Elles permettent de coder rapidement une

    contrainte • Mais elles ne sont pas réutilisables • Et c’est compliqué d’utiliser des dépendances
  3. Les contraintes “externes” • Elles sont un peu plus longues

    à mettre en place • Cependant le MakerBundle fait (presque) tout pour nous • Mais elles sont réutilisables • Et on peut utiliser des dépendances • Et elles sont plus facilement testables
  4. Réutilisabilité & Design • Le code fut rapide à écrire

    • Mais il n’est pas réutilisable • Si il y a beaucoup de type, la classe va grossir très / trop vite • Le code devient pénible à tester et maintenir ⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇ ⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇⬇ • Contraintes externes • DIC
  5. Conclusion • $context->getValidator()->inContext($context) • Placer le code dans une contrainte

    externe est plus maintenable • Et plus réutilisable • Et plus testable • Avec _instanceof et !tagged_locator tout devient automatique • default_index_method permet de découpler la classe du type
  6. Conclusion (2) Si vous pouvez, utilisez des objets à la

    place d’un tableau non typé. Voir DiscriminatorMap du serializer Plus d’info sur le blog de JoliCode