
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
Commençons par installer le bundle https://github.com/overblog/GraphQLBundle
composer require overblog/graphql-bundle
Nous ajoutons au même moment l'IDE GraphiQL qui est contenu dans un autre bundle https://github.com/overblog/GraphiQLBundle. L'IDE permet d'afficher directement la documentation, ainsi que d'effectuer les query :
composer req --dev overblog/graphiql-bundle
Normalement l'url http://symfony.localhost/graphiql est disponible (avec une erreur 500)
Nous allons commencer par créer les types GraphQL pour les trois principaux objets :
Nous allons ensuite mettre les types dans le dossier config/graphql/types.
On commence par grade qui est l'objet le plus simple, il ne contient que le nom du grade.
Ajoutez le fichier Grade.yaml avec le code suivant :
Grade: type: object config: fields: id: type: 'Int!' name: type: 'String!'
Ajoutez le fichier Planet.yaml avec le code suivant :
Planet: type: object config: fields: id: type: 'Int!' name: type: 'String!' astronauts: type: '[Astronaut]'
Comme vous le remarquez, le type GraphQL ne suit pas directement le type MySQL. Ici on permet la récupération directement dans l'object planet de l'ensemble des astronautes.
Ajoutez le fichier Astronaut.yaml avec le code suivant :
Astronaut: type: object config: fields: id: type: 'Int!' pseudo: type: 'String!' grade: type: 'Grade' planet: type: 'Planet'
Dans le cas de l'astronaute, l'objet contient directement le grade et la planet.
Retrouvez le code directement ici
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