Skip to content

Latest commit

 

History

History
120 lines (76 loc) · 3.86 KB

File metadata and controls

120 lines (76 loc) · 3.86 KB

Gato GraphQL Monorepo

The Gato GraphQL Monorepo contains several projects.

Gato GraphQL for WordPress

Gato GraphQL is a forward-looking and powerful GraphQL server for WordPress.

Plugins can extend the GraphQL schema, to fetch their own data.

GraphQL By PoP

GraphQL by PoP is a CMS-agnostic GraphQL server in PHP.

PoP - set of PHP components

PoP is a set of libraries which provide a server-side component model in PHP, and the foundation to implement applications with it.

  • Source code:
    • Backbone: Libraries providing the architectural scaffolding.
    • Engine: The engine of the application.
    • Schema: Self-sufficient schema elements, such as directives.
    • CMSSchema: Schema elements abstracted away from the CMS through interfaces, and to be satisfied for some particular CMS.
    • WPSchema: WordPress-specific schema elements.
    • API: Packages to access the schema data through an API, including REST and GraphQL.

Table of Contents

  1. Setting-up the development environment
  2. Running tests
  3. Layer dependency graph
  4. How is the GraphQL server CMS-agnostic
  5. Why are there so many packages in the repo
  6. Why a monorepo
  7. How transpiling works
  8. How scoping works
  9. Installing Gato GraphQL

Standards

PSR-1, PSR-4 and PSR-12.

To check the coding standards via PHP CodeSniffer, run:

composer check-style

To automatically fix issues, run:

composer fix-style

Testing

To execute PHPUnit, run:

composer test

Static analysis

To execute PHPStan, run:

composer analyse

Previewing code downgrade

Via Rector (dry-run mode):

composer preview-code-downgrade

Report issues

Use the issue tracker to report a bug or request a new feature for all packages in the monorepo.

Contributing

Please see CONTRIBUTING and CODE_OF_CONDUCT for details.

Security

If you discover any security related issues, please email [email protected] instead of using the issue tracker.

Credits

License

GNU General Public License v2 (or later). Please see License File for more information.