Skip to content

GraphQL ORMA GraphQL ORM for PHP and Symfony

Map PHP objects to a GraphQL API with attributes, query it with repositories and a query builder, the way Doctrine does with SQL.

Installation ​

bash
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 ​

yaml
# 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
bash
php bin/console graphqlorm:make:entity Task --from-schema
php
$tasks = $taskRepository->findBy(['status' => 'active'], ['createdAt' => Direction::Desc], 10);

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

Next: configure the bundle, then map your entities.

Released under the MIT License.