PHPackages                             andrew72ru/gql-query-builder - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. andrew72ru/gql-query-builder

ActiveLibrary[API Development](/categories/api)

andrew72ru/gql-query-builder
============================

GraphGL query builder

v1.0.0(8y ago)13.6kMITPHPPHP &gt;=7.1.0

Since Feb 13Pushed 8y agoCompare

[ Source](https://github.com/andrew72ru/gql-query-builder)[ Packagist](https://packagist.org/packages/andrew72ru/gql-query-builder)[ RSS](/packages/andrew72ru-gql-query-builder/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (1)Dependencies (2)Versions (2)Used By (0)

Small library for build [GraphQL](http://graphql.org) queries in php
====================================================================

[](#small-library-for-build-graphql-queries-in-php)

[![Build Status](https://camo.githubusercontent.com/1e81affbf53051d6fa2455c0bb3d183c21dfab9d166498fb0c39919593bbfc28/68747470733a2f2f7472617669732d63692e6f72672f616e64726577373272752f67716c2d71756572792d6275696c6465722e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/andrew72ru/gql-query-builder)[![Coverage Satatus](https://camo.githubusercontent.com/53ca445393389cc49368c669e1f98a5f638c69dfb7d26d597cc640fd5e3bfc8d/68747470733a2f2f636f6465636f762e696f2f67682f616e64726577373272752f67716c2d71756572792d6275696c6465722f6272616e63682f6d61737465722f67726170682f62616467652e737667)](https://codecov.io/gh/andrew72ru/gql-query-builder/branch/master)

**Attention!**
The library **does not include** any http-clients implementations and intended **only** for build valid queries for some GraphQL servers. The correctness of requests depends of specific GraphQL server implementation.

Installation
------------

[](#installation)

```
composer require andrew72ru/gql-query-builder

```

Usage
-----

[](#usage)

Example query with parameters and variables:

```
query MyAwesomeScheme($pools: [String!], $objects: [String!], $yesterday: DateTime) {
        today: values(pools: $pools, objects: $objects) {
            object {
                object
                expirationDate
            }
            time
            myParam
            myOtherParam
        }
        yesterday: values(pools: $pools, objects: $objects, time: $yesterday) {
            object {
                object
                expirationDate
            }
            myThirdParam
        }
    }

```

The code above returns this query as string

```
public function createMyQuery()
{
    $builder = new Builder();

    $builder->setName('MyAwesomeScheme');
    $builder->addQueryParam('pools', Builder::TYPE_STRING, true, true)
        ->addQueryParam('objects', Builder::TYPE_STRING, true, true)
        ->addQueryParam('yesterday', Builder::TYPE_DATE_TIME, false, false);

    $bodyToday = new QueryBody($builder);
    $bodyToday->setName('values')
        ->setVariableName('today')
        ->addBodyPart(['object' => ['object', 'expirationDate']])
        ->addBodyPart('time')
        ->addBodyPart('myParam')
        ->addBodyPart('myOtherParam');

    $bodyToday->addNameParam('pools', 'pools')
        ->addNameParam('bjects', 'bjects');

    $bodyYesterday = new QueryBody($builder);
    $bodyYesterday->setName('values')
        ->setVariableName('yesterday');

    $body = [
        'object' => [
            'object',
            'expirationDate',
        ],
        'myThirdParam',
    ];
    $bodyYesterday->setBody($body);

    $params = [
        [
            'name' => 'pools',
            'type' => 'pools',
        ],
        [
            'name' => 'values',
            'type' => 'values',
        ],
        [
            'name' => 'time',
            'type' => 'yesterday',
        ]
    ];

    $bodyYesterday->setNameParams($params);

    $builder->setBody($bodyToday)->addBodyPart($bodyYesterday);

    return $builder->build();

    // Or You may use __toString() implementation
    // return (string) $builder;
}

```

Simply query without parameters and variables

```
query MyAwesomeScheme {
    values {
        object {
            expirationDate
        }
        time
    }
}

```

Code:

```
public function createSimpleQuery()
{
    $builder = new Builder();
    $body = new QueryBody($builder);
    $body->setName('quotes')
        ->setBody([
            'symbol' => ['expirationDate'],
            'time',
        ]);
    $builder->setBody($body)
        ->setName('TradingSchema');

    return (string) $builder;
}

```

Contributing
------------

[](#contributing)

You are welcome! :)

Testing
-------

[](#testing)

Tests are implemented with [Codeception](https://codeception.com) framework.

- Clone this repository;
- install requirements (`composer install --dev`);
- run tests: `vendor/bin/codecept run --coverage-html`

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity18

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

3011d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/de3029a42f4492f8c900a0ce2f2a05275471040c885b73750e9c7adda08a6019?d=identicon)[andrew72ru](/maintainers/andrew72ru)

---

Top Contributors

[![andrew72ru](https://avatars.githubusercontent.com/u/567649?v=4)](https://github.com/andrew72ru "andrew72ru (19 commits)")

---

Tags

graphqlphpphp7

###  Code Quality

TestsCodeception

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/andrew72ru-gql-query-builder/health.svg)

```
[![Health](https://phpackages.com/badges/andrew72ru-gql-query-builder/health.svg)](https://phpackages.com/packages/andrew72ru-gql-query-builder)
```

###  Alternatives

[stripe/stripe-php

Stripe PHP Library

4.0k143.3M480](/packages/stripe-stripe-php)[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M272](/packages/twilio-sdk)[knplabs/github-api

GitHub API v3 client

2.2k15.8M187](/packages/knplabs-github-api)[facebook/php-business-sdk

PHP SDK for Facebook Business

90121.9M34](/packages/facebook-php-business-sdk)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

73813.7M114](/packages/meilisearch-meilisearch-php)[google/gax

Google API Core for PHP

263103.1M454](/packages/google-gax)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
