Skip to content

Repository files navigation

GraphQL ORM

GraphQL ORM is a lightweight GraphQL ORM for PHP/Symfony, inspired by concepts from Doctrine ORM.

It allows you to map PHP objects to a GraphQL API using attributes, and provides repositories, a query builder, automatic hydration, relation handling, schema validation, and deep Symfony integration.


Installation

composer require hecht-a/graphql-orm

Requirements: PHP 8.4+ and Symfony 7.4 or 8.x.

The bundle relies on the HTTP client service provided by FrameworkBundle (framework.http_client, enabled by default when symfony/http-client is installed).

Quick start

# config/packages/graphql_orm.yaml
graphql_orm:
  endpoint: 'http://localhost:4000/graphql'
  mapping:
    entity:
      dir: '%kernel.project_dir%/src/GraphQL/Entity'
      namespace: App\GraphQL\Entity
    repository:
      dir: '%kernel.project_dir%/src/GraphQL/Repository'
      namespace: App\GraphQL\Repository
php bin/console graphqlorm:make:entity Task
$tasks = $taskRepository->findAll();

$qb = $taskRepository->createQueryBuilder();
$tasks = $qb
    ->select('id', 'title', 'user.name')
    ->where($qb->expr()->eq('status', 'active'))
    ->limit(10)
    ->getQuery()
    ->getResult();

Documentation

The documentation is published at https://hecht-a.github.io/graphql-orm/, and its pages live in docs/:

License

MIT, see LICENSE.

Releases

Packages

Used by

Contributors

Languages