leoloso / PoP

Monorepo of the PoP project, including: a server-side component model in PHP, a GraphQL server, a GraphQL API plugin for WordPress, and a website builder

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PoP

PoP is a monorepo containing several projects.

Unit tests Downgrade PHP tests Scoping tests Generate plugins

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.

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.


Table of Contents

  1. Setting-up the development environment
  2. Running tests
  3. Repo visualization
  4. Layer dependency graph
  5. Supported PHP features
  6. How is the GraphQL server CMS-agnostic
  7. Why are there so many packages in the repo
  8. Why a monorepo
  9. How transpiling works
  10. How scoping works
  11. 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 leo@getpop.org instead of using the issue tracker.

Credits

License

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

About

Monorepo of the PoP project, including: a server-side component model in PHP, a GraphQL server, a GraphQL API plugin for WordPress, and a website builder

License:GNU General Public License v2.0


Languages

Language:PHP 94.6%Language:JavaScript 3.9%Language:CSS 1.0%Language:Shell 0.3%Language:SCSS 0.1%Language:HTML 0.1%