PHPackages                             dastanaron/graphql-querybuilder - 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. dastanaron/graphql-querybuilder

ActiveExtension[API Development](/categories/api)

dastanaron/graphql-querybuilder
===============================

GraphQL Query Builder

131PHPCI failing

Since Mar 10Pushed 6y agoCompare

[ Source](https://github.com/dastanaron/gql-query-generator-php)[ Packagist](https://packagist.org/packages/dastanaron/graphql-querybuilder)[ RSS](/packages/dastanaron-graphql-querybuilder/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependenciesVersions (1)Used By (0)

GraphQL (GQL) query generator
=============================

[](#graphql-gql-query-generator)

Библиотека для работы с GraphQL запросами. Позволяет удобно составлять структуру запросов, рефракторить ее, или собирать постепенно в зависимости от условий. Данная библиотека будет улучшаться, данная версия работает с массивами. В дальнейшем, планируется доработать, ее для работы с объектами.

Установка
=========

[](#установка)

`composer require dastanaron/graphql-querybuilder "@dev"`

Используйте в своем php файле, если вы используете autoload.php из composer

```
use dastanaron\GraphQL\GQLQueryGenerator;
```

Примеры работы
--------------

[](#примеры-работы)

### Конструктор класса принимает три параметра:

[](#конструктор-класса-принимает-три-параметра)

`$base` - указатель базы запроса, с нее обычно начинается запрос GraphQL,

```
{USER(/*filters*/) {/*select*/}}
```

Где User - это и есть указатель `$base`, а `filter` и `select` - это соответственно параметры для фильтрации и выборки.

`$filter` - это массив фильтров, где ключом является сама строка выборки, а значением - его значение. Проще на примере:

```
$filter = [
	'lang' => 'ru',
	'foo' => 'bar',
	'limit' => 10
];
```

Такой пример сформирует такой запрос:

```
{Users(lang: "ru", foo: "bar", limit: 10){/*select*/}}
```

Обратите внимание, что если вы передаете число, система не оборачивает его в кавычки. Это зависит от вашей **GraphQL** базы. Иногда нужно передавать и булевы значения и числа, а php их может преобразовывать. Данная библиотека этого не делает. Какого типа данные будут переданы, такого типа данные и сформируются в запросе. Будьте внимательны. Если нужно передать число как строку, то передавайте его строкой, т.е. завернутой в кавычки при передачи значения ключа массива

`$select` - это массив выборок. Сразу к примеру:

```
$select = [
	'name',
	'age',
	'documents' =>
		[
			'passport',
			'driver_license',
			'other',
			'photo(preset: "55x55")'
		]
];
```

Данный пример сформирует такую строку запроса:

```
{/*Base*/(/*filter*/){name age documents{passport driver_license other photo(preset: "55x55")}}}
```

Пример:
-------

[](#пример)

```
