All Projects → leoloso → Pop

leoloso / Pop

Licence: gpl-2.0
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

Projects that are alternatives of or similar to Pop

Wp Graphql
🚀 GraphQL API for WordPress
Stars: ✭ 3,097 (+1835.63%)
Mutual labels:  api, graphql, graphql-server, graphql-api, wordpress, wordpress-plugin
Graphql2rest
GraphQL to REST converter: automatically generate a RESTful API from your existing GraphQL API
Stars: ✭ 181 (+13.13%)
Mutual labels:  api, graphql, rest-api, graphql-server, graphql-api
Storefront Api
Storefront GraphQL API Gateway. Modular architecture. ElasticSearch included. Works great with Magento1, Magento2, Spree, OpenCart, Pimcore and custom backends
Stars: ✭ 180 (+12.5%)
Mutual labels:  api, graphql, rest-api, graphql-server, graphql-api
Strapi Sdk Javascript
🔌 Official JavaScript SDK for APIs built with Strapi.
Stars: ✭ 247 (+54.38%)
Mutual labels:  api, graphql, rest-api, headless-cms
Wp Graphql Gutenberg
Query gutenberg blocks with wp-graphql
Stars: ✭ 158 (-1.25%)
Mutual labels:  api, graphql, wordpress, wordpress-plugin
Co Cart
🛒 CoCart is a flexible, open-source solution to enabling the shopping cart via the REST API for WooCommerce.
Stars: ✭ 198 (+23.75%)
Mutual labels:  api, rest-api, wordpress, wordpress-plugin
Typegql
Create GraphQL schema with TypeScript classes.
Stars: ✭ 415 (+159.38%)
Mutual labels:  api, graphql, graphql-server, graphql-api
Wp Graphql Woocommerce
Add WooCommerce support and functionality to your WPGraphQL server
Stars: ✭ 318 (+98.75%)
Mutual labels:  api, graphql, graphql-server, wordpress-plugin
Daptin
Daptin - Backend As A Service - GraphQL/JSON-API Headless CMS
Stars: ✭ 1,195 (+646.88%)
Mutual labels:  graphql, graphql-server, graphql-api, headless-cms
Graphql Api For Wp
[READ ONLY] GraphQL API for WordPress
Stars: ✭ 136 (-15%)
Mutual labels:  api, graphql, graphql-server, wordpress
Rick And Morty Api
The Rick and Morty API
Stars: ✭ 542 (+238.75%)
Mutual labels:  api, graphql, rest-api, graphql-api
Directus
Open-Source Data Platform 🐰 — Directus wraps any SQL database with a real-time GraphQL+REST API and an intuitive app for non-technical users.
Stars: ✭ 13,190 (+8143.75%)
Mutual labels:  api, graphql, headless-cms, headless
Contentjet Ui
Headless API-first content management system
Stars: ✭ 42 (-73.75%)
Mutual labels:  api, rest-api, headless-cms, headless
Parse Server
API server module for Node/Express
Stars: ✭ 19,165 (+11878.13%)
Mutual labels:  graphql, rest-api, graphql-server, graphql-api
Headless Wp Starter
🔪 WordPress + React Starter Kit: Spin up a WordPress-powered React app in one step
Stars: ✭ 4,144 (+2490%)
Mutual labels:  rest-api, graphql-api, wordpress, headless-cms
Api Platform
Create REST and GraphQL APIs, scaffold Jamstack webapps, stream changes in real-time.
Stars: ✭ 7,144 (+4365%)
Mutual labels:  api, graphql, graphql-server, graphql-api
Acf To Rest Api
Exposes Advanced Custom Fields Endpoints in the WordPress REST API
Stars: ✭ 1,152 (+620%)
Mutual labels:  api, rest-api, wordpress, wordpress-plugin
Docker
Directus Docker — The Official Docker Container for the Directus Suite
Stars: ✭ 93 (-41.87%)
Mutual labels:  graphql, headless-cms, headless
Ariadne
Ariadne is a Python library for implementing GraphQL servers using schema-first approach.
Stars: ✭ 1,274 (+696.25%)
Mutual labels:  api, graphql, graphql-server
Strapi
🚀 Open source Node.js Headless CMS to easily build customisable APIs
Stars: ✭ 41,786 (+26016.25%)
Mutual labels:  api, graphql, headless-cms

PoP

PoP

This is a monorepo containing all layers from the PoP project:

Engine:
A server-side component model in PHP.

Schema:
The definitions for data entities (posts, users, comments, etc).

API:
Packages to access the schema data through an API, including REST and GraphQL.

GraphQL by PoP:
Implementation of a CMS-agnostic GraphQL server in PHP, living in graphql-by-pop.com.

GraphQL API for WordPress:
Implementation of the CMS-agnostic GraphQL server for WordPress, involving the main plugin and extensions, and living in graphql-api.com.

Site Builder:
Packages to build a website using the component-model architecture.

Wassup:
Implementation of a PoP website for WordPress (powering MESYM and TPP Debate).

Misc:
Collection of packages, clients, and others, related to PoP or any of its layers.

Dependency graph

This is how the layers in PoP relate to each other:

Dependency graph

PHP versions

All packages in this monorepo require PHP 8.0 for development, but contain only PHP code that can be transpiled to PHP 7.1 for production.

Supported PHP features

PHP Version Features
7.1 Everything
7.2 object type

parameter type widening

Functions:Constants:
7.3 Reference assignments in list()/array destructuring => [&$a, [$b, &$c]] = $d
Except inside foreach (#4376)

Flexible Heredoc and Nowdoc syntax

Trailing commans in functions calls

set(raw)cookie accepts $option argument

Functions:Exceptions:
7.4 Typed properties

Arrow functions

Null coalescing assignment operator => ??=

Unpacking inside arrays => $nums = [3, 4]; $merged = [1, 2, ...$nums, 5];

Numeric literal separator => 1_000_000

strip_tags() with array of tag names => strip_tags($str, ['a', 'p'])

covariant return types and contravariant param types

Functions:
8.0 Union types

mixed pseudo type

static return type

::class magic constant on objects

match expressions

catch exceptions only by type

Null-safe operator

Class constructor property promotion

Trailing commas in parameter lists and closure use lists

Interfaces:
  • Stringable
Classes:
  • ValueError
  • UnhandledMatchError
Constants:
  • FILTER_VALIDATE_BOOL
Functions:

Preview downgrade to PHP 7.1

Via Rector (dry-run mode):

composer preview-code-downgrade

Lando server for the GraphQL API for WordPress

Launch a development server, with WordPress installed and the GraphQL API plugin activated, through Lando.

Please make sure you have Lando installed, with version 3.0.26 or upwards (or install it from here).

The first time, to install the server, execute:

composer build-server

From then on, to start the server, execute:

composer start-server

The site will be available under http://graphql-api.lndo.site.

To access the wp-admin:

  • User: admin
  • Password: admin

More instructions on the GraphQL API for WordPress README.

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

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].