PhpDev.App
leoloso/PoP

leoloso/PoP

Stars: 262

Forks: 32

Pull Requests: 1640

Issues: 283

Watchers: 16

Last Updated: 2022-12-16 08:08:22

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: PHP, CSS, JavaScript, SCSS, Shell, HTML

PoP

PoP is a monorepo containing several projects.

Unit tests Integration tests Downgrade PHP tests Scoping tests Generate plugins

The GraphQL API for WordPress plugin

GraphQL API for WordPress 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 the GraphQL API for WordPress plugin

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.

OPEN ISSUES

See all