PhpDev.App
thecodingmachine/graphqlite

thecodingmachine/graphqlite

Stars: 512

Forks: 79

Pull Requests: 312

Issues: 196

Watchers: 21

Last Updated: 2022-12-17 11:15:31

Use PHP Attributes/Annotations to declare your GraphQL API

License: MIT License

Languages: PHP, JavaScript, CSS, Shell

https://graphqlite.thecodingmachine.io

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!

OPEN ISSUES

See all