GitHub - thecodingmachine/graphqlite: Use PHP Attributes to declare your GraphQL API
GraphQLite
GraphQL in PHP made easy.
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.