graphpinator

Easy-to-use & Fast GraphQL server implementation for modern PHP. Includes features from latest draft, middleware directives and modules with extra functionality.

MIT License

Downloads
14.6K
Stars
38

Bot releases are hidden (Show)

graphpinator - 1.1.1

Published by peldax almost 3 years ago

Ergonomics:

  • Added validation for DirectiveUsage arguments array, thrown exception now makes more sense to users not familiar with internals.
graphpinator - 1.1

Published by peldax about 3 years ago

  • Significant update to Normalizer. Selection sets with fragment spreads are not flattened and the structure is kept with fragments.
    • Selection sets are still validated as well as refined to remove duplicate fragments and fields.
    • This change allows specialized directive locations on fragment spread/inline fragment, as it is no longer tied to field location.
  • Relaxed type-condition validation for fragments. Previously it was too strict, which was incompatible with the specs and incorrectly threw an validation error in some edge scenarios.
  • Removed class aliases for backwards compatibility introduced in 1.0.
graphpinator - 1.1 rc3

Published by peldax about 3 years ago

⚠️ This is a pre-release, its is ready to be tested by wider range of users, but it is not recommended to use this version in production ⚠️

  • Third and probably final release candidate of upcoming 1.1 release.
  • Improved selection set validation & refinement process.
  • Removed class aliases for backwards compatibility introduced in 1.0.
graphpinator - 1.1 rc2

Published by peldax about 3 years ago

⚠️ This is a pre-release, its is ready to be tested by wider range of users, but it is not recommended to use this version in production ⚠️

  • Second release candidate of upcoming 1.1 release.
  • This version fixes some specification incompatibilities in value resolution, which were created by changes in previous RC.

Other changes:

  • Relaxed type-condition validation for fragments. Previously it was too strict, which was incompatible with the specs and incorrectly threw an error in some edge scenarios.
graphpinator - 1.1 rc1

Published by peldax about 3 years ago

⚠️ This is a pre-release, use only for testing and validation of upcoming changes ⚠️

  • First release candidate of upcoming 1.1 release.
  • This version includes significant update to Normalizer. Selection sets with fragment spreads are not flattened and the structure is kept with fragments.
    • Selection sets are still validated as well as refined to remove duplicate fragments and fields.
    • This change allows specialized directive locations on fragment spread/inline fragment, as it is no longer tied to field location.
graphpinator - 1.0.1

Published by peldax over 3 years ago

  • Added missing getters to few classes in Value namespace
graphpinator - 🎉 1.0 🎉

Published by peldax over 3 years ago

After extremely long time in release candidates (30 RCs) and after many delays, here comes guaranteed stable version of GraPHPinator. I am aware that it took very long to get out of RC phase, but I always found something worth improving and wanted to be sure that 1.X will stay mainline for a long time.

There are still some improvements planned, but none should break compatibility with existing systems & modules.

Changes to RC 30:

  • Fixed some rare & wierd bug with internal array pointer in Finalizer
  • Fixed interface contract in operation location directives (return type changed to void)
graphpinator - 1.0 rc30

Published by peldax over 3 years ago

  • Added module hook to alter final value
  • Small internal refactorings
graphpinator - 1.0 rc29-2

Published by peldax over 3 years ago

  • Fixed bug with typesystem directives having omitted arguments
graphpinator - 1.0 rc29

Published by peldax over 3 years ago

  • Correctly implemented Input value coercion rules
    • Input field can be omitted in request and its value is then also omitted in value object (previously null was automatically added).
    • This rule should probably apply to argument set (specs are not clear in this case), but this behavior is intentionally NOT implemented.
    • If you wish to keep previous behavior, set default value null to all nullable fields.
graphpinator - 1.0 rc28

Published by peldax over 3 years ago

  • Changes in the typesystem namespace structure
    • Moved all typesystem elements into Typesystem namespace
    • Merged Type\Defnition and Typesystem\Type into Typesystem\Constraint\Type
    • ⚠️ This is a huge BC break (I promise its the last one), its the last thing to wanted to clear out before a stable release. I included aliases to avoid as many BC breaks as possible, but everyone is encouraged to refactor the namespaces to new and stable version (also, from my observations, class aliases behave unexpectedly in some situations).
    • Removed \Graphpinator\Directive\FieldDirectiveResult, the constants are now located in \Graphpinator\Typesystem\Location\FieldLocation.
graphpinator - 1.0 rc27

Published by peldax over 3 years ago

  • Added missing initialization of property in UnionType
graphpinator - 1.0 rc26

Published by peldax over 3 years ago

  • Implemented List input coercion
    • Overlooked section in the specs, specifying that single value is automatically converted to list of size 1
  • Because of upgrade in Parser (version 1.1), keywords are now allowed to be valid names
    • Pre 1.1 Parser resolved null/true/false/query/mutation/subscription/on as keywords and not as a valid names for fields and other entities
    • Whether is it valid or not is discussed in the GraphQL specification issue
graphpinator - 1.0 rc25

Published by peldax over 3 years ago

  • Fixed specifiedBy directive not available in introspection
  • Fixed initialization of property in Schema
  • Decoupled Introspection from Schema
graphpinator - 1.0 rc24

Published by peldax over 3 years ago

  • Extracted Upload module into separate package
graphpinator - 1.0 rc23-2

Published by peldax over 3 years ago

  • Fixed errors in middleware hook for variable definition
graphpinator - 1.0 rc23

Published by peldax over 3 years ago

  • Added support for directives on Union, Fragment definition
    • Currently without any middleware hooks
  • Added support for directives on Variable definition
    • Allows hooking some logic on variable value
graphpinator - 1.0 rc22

Published by peldax over 3 years ago

  • Added support for directives on Scalar, Enum and Schema
    • Currently without any middleware hooks
  • Added specifiedBy built-in directive
  • Added deprecation support for arguments/input-fields
  • Added checks to detect non-repeatable typesystem directive duplicates
  • Typesystem directive validations are now disabled when $validateSchema is set to false
  • Re-enabled codestyle checks with PHP 8 support
graphpinator - 1.0 rc21

Published by peldax over 3 years ago

  • Additional schema validations
    • detect emtpy types/interfaces/inputs
    • detect interface cycles
    • detect identical root operation types
  • Test improvements
graphpinator - 1.0 rc20

Published by peldax over 3 years ago

  • Fixed bug where nested non-pure argument directives were not executed
  • Renamed ConcreteSet to TypeSet
  • Final RC?