PoP
PoP is a monorepo containing several projects.
The Gato GraphQL plugin 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.
- Website: graphql-by-pop.com
- Source code
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.
- Website: getpop.org
- 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.
Site Builder (WIP)
Site Builder is a set of PHP components to build a website using PoP's component-model architecture.
Similar to WordPress, it accepts themes.
- Wassup: theme powering sites MESYM and TPP Debate
Table of Contents
- Setting-up the development environment
- Running tests
- Repo visualization
- Layer dependency graph
- Supported PHP features
- How is the GraphQL server CMS-agnostic
- Why are there so many packages in the repo
- Why a monorepo
- How transpiling works
- How scoping works
- Installing Gato GraphQL
Standards
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.