forked from graphql/graphql.github.io
-
Notifications
You must be signed in to change notification settings - Fork 50
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request graphql#1052 from peldax/patch-3
Added more detailed graphpinator description
- Loading branch information
Showing
1 changed file
with
16 additions
and
1 deletion.
There are no files selected for viewing
17 changes: 16 additions & 1 deletion
17
src/content/code/language-support/php/server/graphpinator.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,23 @@ | ||
--- | ||
name: GraPHPinator | ||
description: A GraphQL implementation for modern PHP | ||
description: A GraphQL implementation for modern PHP. Includes features from latest draft, middleware directives and modules with extra functionality. | ||
url: https://github.com/infinityloop-dev/graphpinator | ||
github: infinityloop-dev/graphpinator | ||
--- | ||
|
||
GraPHPinator is feature complete PHP implementation of GraphQL server. Its job is transformation of query string into resolved Json result for a given Schema. | ||
|
||
- Aims to be compliant with the latest draft of GraphQL specification. | ||
- Fully typesafe, and therefore minimum required PHP version is 8.0. Sacrafices a tiny bit of convenience for huge amount of clarity and safety - no random configuration `array`s, no mixed types, no variable function arguments - this library doesnt try to save you from verbosity, but makes sure you always know what you've got. | ||
- Code first. | ||
- Flexible. Easy to extend with extra functionality using Modules or middleware Directives. | ||
- Includes some opt-in extensions which are out of scope of official specs: | ||
- [Printer](https://github.com/infinityloop-dev/graphpinator-printer) - Schema printing for GraPHPinator typesystem. | ||
- [Extra types](https://github.com/infinityloop-dev/graphpinator-extra-types) - Some useful and commonly used types, both scalar or composite. | ||
- [Constraint directives](https://github.com/infinityloop-dev/graphpinator-constraint-directives) - Typesystem directives to declare additional validation on top of GraphQL typesystem. | ||
- [Where directives](https://github.com/infinityloop-dev/graphpinator-where-directives) - Executable directives to filter values in lists. | ||
- File upload using [multipart-formdata](https://github.com/jaydenseric/graphql-multipart-request-spec) specs (currently bundled). | ||
- [Query cost limit module](https://github.com/infinityloop-dev/graphpinator-query-cost) - Modules to limit query cost by restricting maximum depth or number of nodes. | ||
- Project is composed from multiple smaller packages, which may be used standalone: | ||
- [Tokenizer](https://github.com/infinityloop-dev/graphpinator-tokenizer) - Lexical analyzer of GraphQL document. | ||
- [Parser](https://github.com/infinityloop-dev/graphpinator-parser) - Syntactic analyzer of GraphQL document. |