# graphqlite **Repository Path**: mirrors_thecodingmachine/graphqlite ## Basic Information - **Project Name**: graphqlite - **Description**: Use PHP Attributes to declare your GraphQL API - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-01-05 - **Last Updated**: 2026-01-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
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](https://github.com/thecodingmachine/graphqlite-bundle) and [Laravel](https://github.com/thecodingmachine/graphqlite-laravel) integrations available! * Comes with batteries included :battery:: queries, mutations, subscriptions, mapping of arrays/iterators, file uploads, extendable types and more! ## Basic example First, declare a mutation in your controller: ```php 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: ```php #[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 :tada: mutate away! ```graphql { updateProduct(product: { name: 'John Doe' }) { name } } ``` Want to learn more? Head to the [documentation](https://graphqlite.thecodingmachine.io/)! ## Contributing Contributions are welcomed via pull requests. If you'd like to discuss prior to submitting a PR, consider a [discussion](https://github.com/thecodingmachine/graphqlite/discussions). If it's a bug/issue, you can [submit an issue](https://github.com/thecodingmachine/graphqlite/issues) first. All PRs should have sufficient test coverage for any additions or changes. PRs will not be merged without these.