Skip to content

thecodingmachine/graphqlite

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, subscriptions, 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!

Contributing

Contributions are welcomed via pull requests. If you'd like to discuss prior to submitting a PR, consider a discussion. If it's a bug/issue, you can submit an issue first.

All PRs should have sufficient test coverage for any additions or changes. PRs will not be merged without these.

About

Use PHP Attributes/Annotations to declare your GraphQL API

Topics

Resources

License

Stars

Watchers

Forks

Contributors 52

Languages