Skip to content

thecodingmachine/graphqlite

Folders and files

NameName
Last commit message
Last commit date

Latest commit

fcca091 · Mar 13, 2023
Jan 22, 2023
May 14, 2019
Mar 13, 2023
Mar 13, 2023
Mar 12, 2023
Dec 2, 2021
Jun 11, 2022
Feb 22, 2022
Jun 11, 2022
Mar 13, 2023
Apr 7, 2022
Mar 8, 2023
Aug 28, 2021

Repository files navigation

GraphQLite logo

GraphQLite

GraphQL in PHP made easy.

Documentation · Contributing

Latest Stable Version Total Downloads License Continuous Integration Code Coverage


A GraphQL library for PHP that allows you to use attributes (or annotations) to define your schema and write your queries and mutations using simple-to-write controllers.

Features

  • Create a complete GraphQL API by simply annotating your PHP classes
  • Framework agnostic, but with Symfony and Laravel integrations available!
  • Comes with batteries included 🔋: queries, mutations, mapping of arrays/iterators, file uploads, extendable types and more!

Basic example

First, declare a mutation in your controller:

class ProductController
{
    #[Mutation]
    public function updateProduct(Product $product): Product
    {
        // Some code that gets and updates a Product
        return $product;
    }
}

Then, annotate the Product class to declare what fields are exposed to the GraphQL API:

#[Type]
#[Input(update: true)]
class Product
{
    #[Field]
    public function getName(): string
    {
        return $this->name;
    }
    
    #[Field]
    public function setName(string $name): void
    {
        $this->name = $name;
    }
    
    // ...
}

That's it, you're good to go 🎉 mutate away!

{
  updateProduct(product: {
    name: 'John Doe'
  }) {
    name
  }
}

Want to learn more? Head to the documentation!