graphql-php/docs/best-practices.md

19 lines
1011 B
Markdown
Raw Normal View History

2016-11-05 19:55:51 +03:00
# Config Validation
Defining types using arrays may be error-prone, but **graphql-php** provides config validation
tool to report when config has unexpected structure.
This validation tool is **disabled by default** because it is time-consuming operation which only
makes sense during development.
To enable validation - call: `GraphQL\Type\Definition\Config::enableValidation();` in your bootstrap
but make sure to restrict it to debug/development mode only.
# Type Registry
2016-11-25 14:07:51 +03:00
**graphql-php** expects that each type in Schema is presented by single instance. Therefore
2016-11-05 19:55:51 +03:00
if you define your types as separate PHP classes you need to ensure that each type is referenced only once.
Technically you can create several instances of your type (for example for tests), but `GraphQL\Type\Schema`
2016-11-05 19:55:51 +03:00
will throw on attempt to add different instances with the same name.
There are several ways to achieve this depending on your preferences. We provide reference
implementation below that introduces TypeRegistry class: