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