mwildehahn / graphpinator

:zap::globe_with_meridians::zap: Easy-to-use & Fast GraphQL server implementation for modern PHP.

Home Page:https://www.infinityloop.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GraPHPinator

⚡🌐⚡ Easy-to-use & Fast GraphQL server implementation for PHP.

Introduction

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 GraphlQL specification.
  • Fully typesafe, and therefore minimum required PHP version is 8.0.
  • Code first. Schema is generated and printed from source code.
  • Sacrafices a tiny bit of convenience for huge amount of clarity and safety - no random configuration arrays, 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.
  • Includes some opt-in extensions which are out of scope of official specs:
    • Printer - Schema printing for GraPHPinator typesystem.
    • Extra types - Some useful and commonly used types, both scalar or composite.
    • Constraint directives - Typesystem directives to declare additional validation on top of GraphQL type system.
    • Where directives - Executable directives to filter values in lists.
    • File upload using multipart-formdata specs (currently bundled).
  • Project is composed from multiple smaller packages, which may be used standalone:
    • Tokenizer - Lexical analyzer of request document.
    • Parser - Syntactic analyzer of request document.

Installation

Install package using composer

composer require infinityloop-dev/graphpinator

Dependencies

PHP version Package version Build status
7.4+ 0.25.x stable 7.4 codecov
8.0.1+ 1.x master 8.0 codecov

How to use

Contributing

This package is relatively new so some features might be missing. If you stumble upon something that is not included or is not compliant with the specs, please inform us by creating an issue or discussion. This is not yet another package, where issues and pull-requests lie around for months, so dont hesitate and help us improve the library.

About

:zap::globe_with_meridians::zap: Easy-to-use & Fast GraphQL server implementation for modern PHP.

https://www.infinityloop.dev

License:MIT License


Languages

Language:Hack 99.8%Language:Makefile 0.1%Language:Dockerfile 0.1%