Symfony ExpressionLanguage : Comment utiliser ce composant ?
Le composant Symfony ExpressionLanguage : qu'est-ce que c'est ? Quand et comment l'utiliser ? Comment créer des expressions lors de cas plus complexes ?
Progression
Nous allons donc avoir besoin de spécifier les changements de retrocompatibilité à appliquer lorsqu'une version précédente est demandée.
Il nous faut implémenter une liste des versions dans la configuration de Symfony avec, pour chaque version, le namespace complet du fichier qui contient les versions à appliquer.
Editez le fichier app/config/parameters.yml
de votre projet (ou config/services.yaml
sous Symfony 4) et ajoutez l'entrée suivante, sous parameters
:
parameters: versions: 1.1.0: Acme\VersionChanges\VersionChanges110 1.0.0: Acme\VersionChanges\VersionChanges100 0.9.0: Acme\VersionChanges\VersionChanges009 0.8.0: Acme\VersionChanges\VersionChanges008
Nous spécifions une liste de la version la plus récente à la plus ancienne.
Note : La version actuelle (1.2.0) n'apparaît pas dans cette liste, car il s'agit ici uniquement de la liste des versions sur lesquelles nous souhaitons appliquer une retrocompatibilité.
Les changements de retrocompatibilité seront alors appliqués dans ce même ordre.
Ainsi, dans le cas ou un client ajoute un header X-Accept-Version: 0.9.0
dans ses requêtes, les changements de retrocompatibilité des versions seront joués respectivement dans l'ordre 1.1.0
, 1.0.0
puis 0.9.0
.
La version 0.8.0
ne devra pas être jouée, car elle correspond à un modèle encore plus ancien que celui demandé.
Cette configuration doit ensuite être interprêtée par Symfony, et les changements nécessaires appliqués à la réponse de votre API en fonction de la version demandée.
Auteur(s)
Vincent Composieux
Architecte passionné par les technologies web depuis de longues années, je pratique principalement du PHP (Symfony) / Javascript mais aussi du Python ou Golang.
Vous souhaitez en savoir plus sur le sujet ?
Organisons un échange !
Notre équipe d'experts répond à toutes vos questions.
Nous contacterDécouvrez nos autres contenus dans le même thème
Le composant Symfony ExpressionLanguage : qu'est-ce que c'est ? Quand et comment l'utiliser ? Comment créer des expressions lors de cas plus complexes ?
Découvrez comment réaliser du typage générique en PHP : introduction et définition du concept, conseils et explications pas-à-pas de cas pratique.
Découvrez un cas d'usage d'intégration d'un CRM avec une application e-commerce, en asynchrone, avec Hubspot et RabbitMQ