🚀WordPress Plugin Boilerplate using modern web techs like TypeScript, SASS, and so on... on top of a local development environment with Docker and predefined GitLab CI for continous integration and deployment!

Overview

WP React Starter: WordPress React Boilerplate

DEPRECATED: WP React Starter was a "research project" of devowl.io for the development of our WordPress plugins. Unfortunately, we don't have enough resources to regularly contribute the developments of our private monorepo to WP React Starter. You are welcome to continue using or forking this project, but it will no longer be updated or extended with new features, structures, etc.

WP React Starter Logo

Create (multiple) WordPress plugins that use React, TypeScript, and object-oriented PHP in a fully customizable Docker development environment, commited in a monorepo.

Wow, I didn't know the WordPress plugin development could look like this!

🚀 Instant no-config plugin creation with create-wp-react-app 🔥

GitHub stars Join on Slack codecov GitLab CI/CD

🤗 Why WordPress plugin development is fun with WP React Starter

Everyone tells us: WordPress plugins are a mess. Our answer is always: Let’s take this opportunity to make the system that powers every third website on the Internet better.

With WP React Starter we have created a modern WordPress development boilerplate which contains everything you are used to from modern web development projects:

  • React Frontend for reactive user interfaces (with PHP fallback for server-side rendering) - React is a part of WordPress since the Gutenberg release
  • TypeScript for typesafe frontend development
  • PHP in an object-oriented style with namespaces for better backend code
  • Docker development environment to develop all you plugins without manual setup steps
  • CI/CD integration for automated code quality checks and release management (publish on wordpress.org or wherever you want)

Does that sound like crappy WordPress plugin development or what you really have been looking for for your plugins for a long time? Let's start today with your first WordPress plugin! Create it within 5 minutes, thanks to our CLI create-wp-react-app

Client-Side Features

Familiar React API & patterns (ES6) with TypeScript

  • React with Babel env preset + Hooks
  • MobX for state management
  • webpack build for assets
  • core-js puts automatically needed polyfills to your distribution files
  • Sourcemap generation for debugging purposes (CSS and TypeScript files)
  • SASS stylesheets compiler (.scss files) for next-gen CSS
  • PostCSS for transforming SCSS (including autoprefixing) to CSS
  • Minified sources automatically generated for production (JS, CSS)
  • Grunt for automation tasks (build the installable plugin)
  • ESLint predefined configuration for proper linting
  • TypeDoc for JavaScript Documentation
  • WP HookDoc for Filters & Actions Documentation
  • Translation (i18n) with automatic generation of .pot files
  • Add-On Development (multiple WordPress plugins), based on a predefined utils package that allows you to share TypeScript types across plugins.
  • Admin backend components, in this case an own page with a button (admin.ts)
  • Frontend components, in this case a simple widget (widget.ts)

Server-Side Features

OOP-style for building a high-quality PHP development

  • PHP >= 5.6 required: An admin notice is showed when not available
  • WordPress >= 5.2 required: An admin notice is showed when not available with a link to the updater
  • PHP CodeSniffer predefined configuration for proper linting
  • Namespace support
  • Autloading classes in connection with namespaces
  • WP REST API v2 for API programming, no longer use admin-ajax.php for CRUD operations
  • SCRIPT_DEBUG enables not-minified sources for debug sources (use in connection with yarn build:js:development)
  • Cachebuster for public resources
  • Automatic generation of .pot files for translating (i18n) the backend plugin
  • phpDocumentor for PHP Documentation
  • apiDoc for API Documentation

Automation Features

Avoid repetitive work and develop more feature

  • Workspace creation with end-to-end setup: create-wp-react-app create-workspace
  • Plugin creation with monorepo integration: create-wp-react-app create-plugin
  • Package creation with monorepo integration: create-wp-react-app create-package
  • Predefined GitLab CI example for Continous Integration (read more)
  • Scoping your PHP coding and dependencies so they are isolated (avoid dependency version conflicts)
  • Packaging and publishing of you plugin wordpress.org (read more)
  • license-checker for automated 3th-party-code license scanning and compliance check

Developer Experience Features

Providing the right development environment for high quality plugins

  • Built on top of Visual Studio Code (extensions are automatically installed)
  • All your plugins within yarn workspaces
  • Prettier for automatic JavaScript / TypeScript code formatting on save (VSCode required)
  • PHP CodeSniffer's cbf for automatic PHP code formatting on save (VSCode required)
  • Husky integration for code formatting before Git commit - never have ugly code in your repository
  • Husky is also used for commitlint to become a common commit message style in your repository
  • lerna for semantic versioning and changelog generation
  • webpackbar so you can get a real progress bar while development
  • Docker for a local development environment
  • Predefined WordPress Stubs so you get autocompletion for WordPress classes and functions, e. g. add_action
  • Within the Docker environment you have WP-CLI available
  • Predefined Review Apps example for branch deployment, read more here
  • Predefined VSCode PHP debugging environment

Testing Features

Cover your source code with test code to to guarantee the last piece quality

  • PHPUnit for PHP unit testing
  • Jest for TypeScript unit- and snapshot testing
  • Collect code coverage reports with a single command in each package
  • Automatically push coverage reports to codecov.io
  • Cypress for End-To-End (E2E) tests
  • Gherkin syntax to write E2E features (combined with Cypress)
  • Automatically failure a GitLab CI pipeline if a coverage percent is not reached (threshold)
  • 🚀 The complete test suite is integrated in GitLab CI

Documentation

You want to dive deep into the documentation of WP React Starter? Check, we convinced another developer to write high quality WordPress plugins. 🚀

Usage

PHP development

TypeScript development

Advanced

GitLab integration

Licensing

Thank you for your interest in WP React Starter. This boilerplate was developed organically over years and we at devowl.io bring all our experience from best-selling WordPress plugins like WordPress Real Media Library as well as customer web development orders to this project. With WP React Starter you get dozens of hundred working hours compressed into one easy-to-use solution.

We would like to share our knowledge and solution with you to make the development of WordPress plugins more professional. But we are even happier if you also share your knowledge to make this project even better.

WP React Starter is licensed partly under GNU General Public License v3.0 (GPL v3.0 or later) and partly under our ISC License (ISC). Feel free to develop high-quality WordPress plugins at light speed with WP React Starter in real projects. Don't worry, it's free to use for all non-commercial and commercial WordPress plugins!

Comments
  • Cloning git repository hangs

    Cloning git repository hangs

    After running the first two commands npm install -g create-wp-react-app and create-wp-react-app create my-plugin the initialization on the prjects begins but gets stuck at Clone git repository. The loader just hangs there forever and never passes. Any idea on why this is happening. I made sure that my git email was correct and that I have an ssh key setup. Any help would be appreciated, thanks.

    opened by JakeGreer 6
  • How to use static assets inside SASS styles?

    How to use static assets inside SASS styles?

    Hey guys, how I can use e.g. png image inside an scss file of a plugin? How should I store the image inside the plugin folder and what path to use to get it?

    Thanks!

    opened by fedorenkodev 2
  • Feature suggestions

    Feature suggestions

    First of all, thank you for all your hard work putting this project together. It is a wonderful collection of tools and technologies.

    I am experienced with React, but new to WordPress, and there are some features I expected to find in this starter that are either absent or that I have not been able to find (perhaps due to my inexperience with WordPress).

    • Custom API endpoints -- The starter project demonstrates how to call and consume the response from the /plugin endpoint of the WordPress REST API, but there is no example (that I can see) of creating or consuming a custom endpoint. EDIT: I was wrong. The inc/rest/Service.class.php file does create a REST endpoint at /plugin (under the REST SERVICE_NAMESPACE). I was confused because WordPress exposes a built-in REST service at /plugin. Perhaps wp-reactjs-starter should use a different name for its example endpoint.
    • Data storage -- The starter project contains an in-memory Todo list. It would have been better (in my opinion) to have the Todo data persisted in a WordPress table and/or MariaDB.
    • Shortcode -- Being new to WordPress, it would have been very helpful to me if the starter project demonstrated shortcode creation so the Widget could be inserted in the main content of a page.
    • Cannot use Widget -- In the Appearance/Widgets admin page, I can see the "React Demo Widget" listed, but I cannot seem to add it to a page. It seems that the only side-bar is the "Footer" and even when I add the widget to that sidebar, nothing shows up on the page. It is highly likely that I am just misunderstanding something about WordPress or your project, but I'm surprised that in the initial state of the project, I cannot seem to find any way to use the React Demo Widget. Shouldn't it be present on the "Hello World" post? If it is there or can be added, please let me know how. EDIT: I just realized that the widget would have shown up except for a bug -- "ReferenceError: jQuery is not defined". I'll post that as a separate issue.

    Thank you so much again for your great project. I would very much appreciate if you could clear up my confusion on a few of the issues above. Thanks!

    opened by drwatsoncode 2
  • i18n-frontend script slow

    i18n-frontend script slow

    When using the yarn i18n-frontend script the .pot file is generated very slowly in compare with yarn i18n-backend. The frontend file is generated from the minified files of the TypeScript code .js and .map files - it takes about 5 seconds. The backend i18n code from the .php files is generated in 0.3 seconds. Perhaps there is a better way to parse the source files .tsx (TypeScript) directly instead of dist files.

    opened by matzeeable 2
  • How to add static assets (images)?

    How to add static assets (images)?

    Hi,

    how would you add static assets to your React frontend?

    This is what I've tried:

    add file-loader to webpack config:

    {
            test: /\.(png|svg|jpg|gif)$/,
            use: [
              'file-loader'
            ]
          }
    

    then in my react code do

    import HatImage from '../../assets/hat_random.png'
    ...
    
       <img src={`/wp-content/plugins/wsb-players/public/dist/${HatImage}`}  />
    

    The above works, but I don't like hardcoding the path to the image. Especially, as it does not work well with npm run dev / npm run build. Do you have a better approach for loading images?

    opened by nagyv 2
  • commonUrlBuilder double url encoding of route params

    commonUrlBuilder double url encoding of route params

    As the template is missing an example of a API call with parameters, I may be using it in an incorrect way.

    I created an endpoint in php expecting a query parameter. The Typescript declaration is the foillowing:

    import {
        RouteLocationInterface,
        RouteHttpVerb,
        RouteResponseInterface,
        RouteRequestInterface,
        RouteParamsInterface
    } from "@dbnary-dashboard/utils";
    
    export const sparqlGetLocation: RouteLocationInterface = {
        path: "/sparql",
        method: RouteHttpVerb.GET
    };
    export type SparqlRequest = RouteRequestInterface;
    export type SparqlParams = RouteParamsInterface & { query: string };
    

    And I use it with :

    async function doSparqlQuery(event: React.MouseEvent) {
        event.persist();
        const result = await request<SparqlRequest, SparqlParams, SparqlResponse>({
            location: sparqlGetLocation,
            params: { query: "SELECT * FROM { ?s ?p ?o } LIMIT 10" }
        });
        const usedUrl = urlBuilder({ location: sparqlGetLocation });
        alert(`${usedUrl}\n\n${JSON.stringify(result, undefined, 4)}`);
        event.preventDefault();
    }
    

    The code does not work as expected as it leads to the queried URL :

    http://localhost:8080/wp-json/dbnary-dashboard/v1/sparql?_v=1.0.0&query=SELECT%2520*%2520FROM%2520%257B%2520%253Fs%2520%253Fp%2520%253Fo%2520%257D%2520LIMIT%252010
    

    (see how the query parameter is double encoded (%2520 instead of %20).

    I tracked down the problem to packages/utils/lib/factory/ajax/commonUrlBuilder.tsx where the parameters are explicitely encoded at:

        // Find undeclared body params (which are not bind above) and add it to GET query
        for (const checkParam of Object.keys(params)) {
            if (foundParams.indexOf(checkParam) === -1) {
                getParams[checkParam] = encodeURIComponent((params as any)[checkParam]);
            }
        }
    

    And afterward, the call to Url.toString() at return apiUrl.set("query", deepMerge.all([options.restQuery, getParams, query])).toString();will re-encode the parameter (using stringify).

    Why are parameters URIencoded explicitely in commonUrlBuilder ?

    Am I using the boilerplate code incorrectly there ?

    opened by serasset 1
  • Yarn Directions

    Yarn Directions

    Hey there! Per your installation instructions, your step for Yarn states: $ yarn add -g create-wp-react-app

    This syntax would be correct for NPM, but one caveat of using yarn is that the syntax to globally download packages is actually: $ yarn global add create-wp-react-app

    Just wanted to let you know that I was unable to install the package globally until using the latter code, thanks!

    opened by mscheppmann 1
  • Bump underscore.string from 3.3.4 to 3.3.5

    Bump underscore.string from 3.3.4 to 3.3.5

    Bumps underscore.string from 3.3.4 to 3.3.5.

    Changelog

    Sourced from underscore.string's changelog.

    3.3.5

    Commits
    Maintainer changes

    This version was pushed to npm by esamatti, a new releaser for underscore.string since your current version.


    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot ignore this [patch|minor|major] version will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    dependencies 
    opened by dependabot[bot] 1
  • chore(deps): update all dependencies docker tags

    chore(deps): update all dependencies docker tags

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | cypress/included | final | minor | 3.2.0 -> 3.4.1 | | mariadb | | minor | 10.3 -> 10.4 | | wordpress | | patch | 5.2.0-apache -> 5.2.2-apache |


    Renovate configuration

    :date: Schedule: "before 3am on the first day of the month" (UTC).

    :vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.

    :recycle: Rebasing: Whenever PR becomes conflicted, or if you modify the PR title to begin with "rebase!".

    :ghost: Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Renovate Bot. View repository job log here.

    opened by renovate[bot] 0
  • Update dependency lodash to v4.17.13 [SECURITY] - autoclosed

    Update dependency lodash to v4.17.13 [SECURITY] - autoclosed

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | lodash (source) | devDependencies | patch | 4.17.11 -> 4.17.13 |

    GitHub Vulnerability Alerts

    CVE-2019-10744

    Affected versions of lodash are vulnerable to Prototype Pollution. The function defaultsDeep could be tricked into adding or modifying properties of Object.prototype using a constructor payload.


    Release Notes

    lodash/lodash

    v4.17.13

    Compare Source


    Renovate configuration

    :date: Schedule: "" (UTC).

    :vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.

    :recycle: Rebasing: Whenever PR becomes conflicted, or if you modify the PR title to begin with "rebase!".

    :no_bell: Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Renovate Bot. View repository job log here.

    opened by renovate[bot] 0
  • Installation request for symfony/config v3.4.20

    Installation request for symfony/config v3.4.20

    After create-wp-react-app create my-plugin it gets stuck at:

    × Install package dependencies with composer → - Installation request for symfony/config v3.4.20 -> satisfiable by symfony/config[v3.4.20].

    Any ideas?

    Fixed: make sure Composer points to php 7 and not 5

    opened by unkindee 0
  • Empty plugin vendor dir

    Empty plugin vendor dir

    Step for reproduce for plugin development

    1. Run yarn build
    2. Go to build/PLUGIN_NAME/vendor/WORKSPACE_NAME/utils

    You see that this folder is empty - and the production plugin version doesn't work...

    opened by mihailShumilov 3
  • webpack.factory.ts - Type 'WebpackBar' is not assignable to type 'Plugin'

    webpack.factory.ts - Type 'WebpackBar' is not assignable to type 'Plugin'

    Ich have a clean setup. With one plugin the setup works. I added a second plugin, and the build process seems broken for all plugins:

    php --version PHP 7.4.16

    node --version v15.12.0

    yarn --version 1.22.10

    composer -V 2.0.11 2021-02-24 14:57:23

    Bildschirmfoto 2021-03-27 um 16 22 13 yarn build

    yarn run v1.22.10 $ BUILD_PLUGIN=$npm_package_slug yarn --silent parallel-webpack --no-stats --config ../../common/webpack.multi.ts && yarn grunt cachebuster:public && yarn grunt build You are currently building a plugin, please consider to put your webpack:done actions after theyarn build` command for performance reasons! ⨯ Unable to compile TypeScript: ../../common/webpack.factory.ts:339:9 - error TS2322: Type '(WebpackBar | MiniCssExtractPlugin | ForkTsCheckerWebpackPlugin | DefinePlugin)[]' is not assignable to type 'Plugin[]'. Type 'WebpackBar | MiniCssExtractPlugin | ForkTsCheckerWebpackPlugin | DefinePlugin' is not assignable to type 'Plugin'. Type 'WebpackBar' is not assignable to type 'Plugin'. Types of property 'apply' are incompatible. Type '(compiler: import("/Users/cnichte/Documents/develop-wordpress-plugins/node_modules/@types/mini-css-extract-plugin/node_modules/@types/webpack/index").Compiler) => void' is not assignable to type '(compiler: import("/Users/cnichte/Documents/develop-wordpress-plugins/node_modules/@types/webpack/index").Compiler) => void'. Types of parameters 'compiler' and 'compiler' are incompatible. Type 'import("/Users/cnichte/Documents/develop-wordpress-plugins/node_modules/@types/webpack/index").Compiler' is not assignable to type 'import("/Users/cnichte/Documents/develop-wordpress-plugins/node_modules/@types/mini-css-extract-plugin/node_modules/@types/webpack/index").Compiler'. The types of 'hooks.shouldEmit.call' are incompatible between these types. Type '(arg1?: import("/Users/cnichte/Documents/develop-wordpress-plugins/node_modules/@types/webpack/index").compilation.Compilation, arg2?: any, arg3?: any, ...args: any[]) => any' is not assignable to type '(arg1?: import("/Users/cnichte/Documents/develop-wordpress-plugins/node_modules/@types/mini-css-extract-plugin/node_modules/@types/webpack/index").compilation.Compilation, arg2?: any, arg3?: any, ...args: any[]) => any'. Types of parameters 'arg1' and 'arg1' are incompatible. Property 'addChunkInGroup' is missing in type 'import("/Users/cnichte/Documents/develop-wordpress-plugins/node_modules/@types/mini-css-extract-plugin/node_modules/@types/webpack/index").compilation.Compilation' but required in type 'import("/Users/cnichte/Documents/develop-wordpress-plugins/node_modules/@types/webpack/index").compilation.Compilation'.

    339 plugins: [ ~~~~~~~

    ../../node_modules/@types/webpack/index.d.ts:1254:13 1254 addChunkInGroup(groupOptions: GroupOptions): ChunkGroup; ~~~~~~~~~~~~~~~ 'addChunkInGroup' is declared here. ../../node_modules/@types/webpack/index.d.ts:132:9 132 plugins?: Plugin[]; ~~~~~~~ The expected type comes from property 'plugins' which is declared here on type 'Configuration'`

    opened by ghost 1
  • Incompatable with xdebug 3

    Incompatable with xdebug 3

    Environment:

    • Windows 10
    • WSL 2
    • Ubuntu

    When start debugging with xdebug, I can see the start script install xdebug 3 by default and current default config from the container is not working with version 3. After refering to the official guide, I added the following to the php.ini config file in wordpress container

    xdebug.client_port = 9000 //xdebug 3 default port is 9003
    xdebug.start_with_request = yes
    xdebug.discover_client_host=1
    xdebug.mode=debug
    

    Now it works, I was wondering where I can put this in this repo for new users.

    opened by richdho 1
  • Benefit from main file parts research

    Benefit from main file parts research

    Hello! You may find this research result highly beneficial. https://github.com/szepeviktor/small-project/blob/master/MAIN-FILE-PARTS.md Basically it aims to leave legacy technologies behind and find out what goes where.

    opened by szepeviktor 1
  • "result.flat" is not a function error when starting the boilerplate containers.

    Hello there,

    I face the following error trying to start the boilerplate.

    ` yarn docker:start yarn run v1.22.5 $ yarn docker-compose up --build -d && concurrently --raw "yarn docker-compose logs -f -t --tail=10" "yarn --silent wp-wait && yarn --silent docker:start:dev" $ PLUGIN_SLUGS=$(yarn --silent workspace:slugs) COMPOSE_PATH_SEPARATOR=: COMPOSE_FILE=./devops/docker-compose/docker-compose.yml:./devops/docker-compose/docker-compose.local.yml:$(COMPOSE_CONTEXT=local yarn --silent workspace:compose-files) COMPOSE_PROJECT_NAME=${npm_package_name} yarn --silent exposedotenv docker-compose up --build -d my-wp-react-boilerplate_mysql_1 is up-to-date my-wp-react-boilerplate_dockerhost_1 is up-to-date my-wp-react-boilerplate_phpmyadmin_1 is up-to-date my-wp-react-boilerplate_wordpress_1 is up-to-date Starting my-wp-react-boilerplate_wordpress-cli_1 ... done $ PLUGIN_SLUGS=$(yarn --silent workspace:slugs) COMPOSE_PATH_SEPARATOR=: COMPOSE_FILE=./devops/docker-compose/docker-compose.yml:./devops/docker-compose/docker-compose.local.yml:$(COMPOSE_CONTEXT=local yarn --silent workspace:compose-files) COMPOSE_PROJECT_NAME=${npm_package_name} yarn --silent exposedotenv docker-compose logs -f -t --tail=10 Attaching to my-wp-react-boilerplate_wordpress-cli_1, my-wp-react-boilerplate_phpmyadmin_1, my-wp-react-boilerplate_wordpress_1, my-wp-react-boilerplate_mysql_1, my-wp-react-boilerplate_dockerhost_1 dockerhost_1 | 2021-03-08T11:37:06.351133837Z Docker Host: 172.20.0.1 (default gateway) dockerhost_1 | 2021-03-08T11:37:06.351503057Z Forwarding ports: 0:65535 mysql_1 | 2021-03-08T11:37:12.736832699Z 2021-03-08 11:37:12 0 [Note] InnoDB: 10.3.28 started; log sequence number 1625452; transaction id 20 mysql_1 | 2021-03-08T11:37:12.736975586Z 2021-03-08 11:37:12 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool mysql_1 | 2021-03-08T11:37:12.737137890Z 2021-03-08 11:37:12 0 [Note] Plugin 'FEEDBACK' is disabled. mysql_1 | 2021-03-08T11:37:12.742398914Z 2021-03-08 11:37:12 0 [Note] Server socket created on IP: '::'. mysql_1 | 2021-03-08T11:37:12.743170186Z 2021-03-08 11:37:12 0 [Warning] 'proxies_priv' entry '@% root@79d808ba5a88' ignored in --skip-name-resolve mode. mysql_1 | 2021-03-08T11:37:12.743421667Z 2021-03-08 11:37:12 0 [Note] InnoDB: Buffer pool(s) load completed at 210308 11:37:12 mysql_1 | 2021-03-08T11:37:12.744041206Z 2021-03-08 11:37:12 0 [Note] Reading of all Master_info entries succeeded mysql_1 | 2021-03-08T11:37:12.744055162Z 2021-03-08 11:37:12 0 [Note] Added new Master_info '' to hash table mysql_1 | 2021-03-08T11:37:12.744058689Z 2021-03-08 11:37:12 0 [Note] mysqld: ready for connections. mysql_1 | 2021-03-08T11:37:12.744061444Z Version: '10.3.28-MariaDB-1:10.3.28+maria~focal' socket: '/var/run/mysqld/mysqld.sock' port: 3306 mariadb.org binary distribution phpmyadmin_1 | 2021-03-08T11:37:06.818718154Z AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.20.0.4. Set the 'ServerName' directive globally to suppress this message phpmyadmin_1 | 2021-03-08T11:37:06.830750265Z AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.20.0.4. Set the 'ServerName' directive globally to suppress this message phpmyadmin_1 | 2021-03-08T11:37:06.843405815Z [Mon Mar 08 11:37:06.843211 2021] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.38 (Debian) PHP/7.4.15 configured -- resuming normal operations phpmyadmin_1 | 2021-03-08T11:37:06.843431743Z [Mon Mar 08 11:37:06.843257 2021] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND' wordpress_1 | 2021-03-08T11:37:27.382903258Z Success: WordPress updated successfully. wordpress_1 | 2021-03-08T11:37:27.388648347Z Chown www-data... wordpress_1 | 2021-03-08T11:37:27.390425301Z Chown www-data done! wordpress_1 | 2021-03-08T11:37:27.426634549Z AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.20.0.5. Set the 'ServerName' directive globally to suppress this message wordpress_1 | 2021-03-08T11:37:27.437784651Z AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.20.0.5. Set the 'ServerName' directive globally to suppress this message wordpress_1 | 2021-03-08T11:37:27.449839716Z [Mon Mar 08 11:37:27.449711 2021] [mpm_prefork:notice] [pid 746] AH00163: Apache/2.4.38 (Debian) PHP/7.3.17 configured -- resuming normal operations wordpress_1 | 2021-03-08T11:37:27.449864833Z [Mon Mar 08 11:37:27.449772 2021] [core:notice] [pid 746] AH00094: Command line: 'apache2 -D FOREGROUND' wordpress_1 | 2021-03-08T11:37:28.313204814Z 127.0.0.1 - - [08/Mar/2021:11:37:28 +0000] "GET /wp-json/my-reactive-plugin/v1/plugin HTTP/1.1" 200 741 "-" "curl/7.64.0" wordpress_1 | 2021-03-08T11:38:32.945742966Z 127.0.0.1 - - [08/Mar/2021:11:38:32 +0000] "GET /wp-json/my-reactive-plugin/v1/plugin HTTP/1.1" 200 741 "-" "curl/7.64.0" wordpress_1 | 2021-03-08T11:40:05.100071447Z 127.0.0.1 - - [08/Mar/2021:11:40:05 +0000] "GET /wp-json/my-reactive-plugin/v1/plugin HTTP/1.1" 200 741 "-" "curl/7.64.0" my-wp-react-boilerplate_wordpress-cli_1 exited with code 0 wordpress_1 | 2021-03-08T11:40:26.481860944Z 127.0.0.1 - - [08/Mar/2021:11:40:26 +0000] "GET /wp-json/my-reactive-plugin/v1/plugin HTTP/1.1" 200 741 "-" "curl/7.64.0" $ /opt/apps/wordpress/my-wp-react-boilerplate/node_modules/.bin/parallel-webpack --no-stats --config common/webpack.multi.ts --watch $ concurrently --raw "test $IS_DOCKER_START_COMMAND && exit 0 || yarn webpack --watch" "yarn --silent chokidar 'src//*.php' -c 'yarn i18n:generate:backend' --silent" $ yarn grunt libs:copy && concurrently --raw "test $IS_DOCKER_START_COMMAND && exit 0 || yarn webpack --watch" "yarn --silent chokidar 'src/inc//.php' -i 'src/inc/base/others/cachebuster' -c 'yarn i18n:generate:backend' --silent" $ grunt --gruntfile scripts/Gruntfile.ts --base . libs:copy Running "clean:npmLibs" (clean) task

    3 paths cleaned.

    Running "copy:npmLibs" (copy) task

    Running "copy:npmLibsHoist" (copy) task Copied 9 files

    Running "node_modules_cachebuster:publiclib" (node_modules_cachebuster) task Generating node modules cachebuster file "src/inc/base/others/cachebuster-lib.php"...OK

    Done. result.flat is not a function error Command failed with exit code 1. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

    ^CERROR: Aborting.

    `

    Thanks in advance for your support.

    opened by AbdiTolesa 1
  • Bootstrap error with Composer 2

    Bootstrap error with Composer 2

    I just installed composer on my Mac, using brew (the composer installation from wp-react-starter failed).

    Then launch create-wp-react-app create-workspace

    The process goes on for a moment, then I get the following errors:

    [...]
    
    lerna ERR! yarn run bootstrap exited 2 in '@dbnary-dashboard/utils'
    lerna ERR! yarn run bootstrap stdout:
    $ composer install
    info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
    
    lerna ERR! yarn run bootstrap stderr:
    Installing dependencies from lock file (including require-dev)
    Verifying lock file contents can be installed on current platform.
    Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. It is recommended that you run `composer update` or `composer update <package name>`.
    Your lock file does not contain a compatible set of packages. Please run composer update.
    
      Problem 1
        - dealerdirect/phpcodesniffer-composer-installer is locked to version v0.5.0 and an update of this package was not requested.
        - dealerdirect/phpcodesniffer-composer-installer v0.5.0 requires composer-plugin-api ^1.0 -> found composer-plugin-api[2.0.0] but it does not match the constraint.
      Problem 2
        - metasyntactical/composer-plugin-license-check is locked to version v0.5.0 and an update of this package was not requested.
        - metasyntactical/composer-plugin-license-check v0.5.0 requires composer-plugin-api ^1.0 -> found composer-plugin-api[2.0.0] but it does not match the constraint.
    
    You are using Composer 2, which some of your plugins seem to be incompatible with. Make sure you update your plugins or report a plugin-issue to ask them to support Composer 2.
    error Command failed with exit code 2.
    
    lerna ERR! yarn run bootstrap exited 2 in '@dbnary-dashboard/utils'
    error Command failed with exit code 2.
    info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
    Error: Command failed with exit code 2: yarn bootstrap
    

    Current setup : Mac OS X with :

    Checking prerequesits...
    ├── Yarn v1.22.10
    ├── Composer version 2.0.6 2020-11-07 11:21:17
    ├── Docker version 19.03.13, build 4484c46d9d
    ├── docker-compose version 1.27.4, build 40524192
    ├── WP-CLI 2.4.0
    ├── Missing optional Prestissimo (Composer package), install it now: https://packagist.org/packages/hirak/prestissimo
    
    opened by serasset 1
Owner
devowl.io GmbH
Quality WordPress plugin developers
devowl.io GmbH
This WP plugin will update GitHub, Bitbucket, GitLab, and Gitea hosted plugins and themes

Transition from GitHub Updater 9.x to Git Updater 10.x Due to the renaming of the plugin folders and files, after the initial update, the plugin will

Andy Fragen 3k Jan 5, 2023
WordPress plugin boilerplate using React and Block Editor components.

PluginWP Foundation ?? UNDER DEVELOPMENT ?? This code serves as a starting point for building a WordPress plugin using React and the block editor comp

JR Tashjian 5 Dec 8, 2022
This WordPress Plugin Boilerplate is meant for you to develop your own plugin on.

WordPress Plugin Boilerplate This plugin boilerplate is meant for you to develop your own plugin on. Support & collaboration Features OOP plugin core

richardev 2 May 10, 2022
A simple platform information plugin for WordPress. Shows you environment variables, PHP settings and more.

A simple platform information plugin for WordPress. Shows you environment variables, PHP settings and more.

New To Vaux 2 Sep 7, 2022
❓ A WordPress plugin to display your site's environment type in the admin bar

Where A WordPress plugin to display your site's environment type in the admin bar. Available Filters where_env_should_add_env_type - Defaults to true

Brad Parbs 7 Mar 29, 2022
Wordless is a junction between a WordPress plugin and a theme boilerplate that dramatically speeds up and enhances your custom theme creation

Wordless is a junction between a WordPress plugin and a theme boilerplate that dramatically speeds up and enhances your custom theme creation. Some of

weLaika 1.4k Dec 9, 2022
WordPress Plugin Boilerplate

This repository, developed by the team of Plugins & Snippets, offers an open source WordPress Plugin Template with many useful functions, specially to prepare basic widgets, short codes and settings page. The aim of this Boilerplate Template is to save time for WordPress Developers in building high-quality plugins.

null 3 Dec 15, 2022
A curated list of Awesome WordPress Theme, Plugins and Framework development Resources and WordPress Communities.

Awesome WordPress A curated list of Awesome WordPress Theme, Plugins and Framework development Resources and WordPress Communities. Inspired by bayand

Dropndot Limited 91 Dec 26, 2022
WP Local Analytics plugin

WP Local Analytics plugin. run user analytics within your system and track user data inside your database. Installing Go to the plugin page from the W

Gary 5 Dec 21, 2022
A foundation for WordPress Plugin Development that aims to provide a clear and consistent guide for building your plugins.

WordPress Plugin Boilerplate A standardized, organized, object-oriented foundation for building high-quality WordPress Plugins. Contents The WordPress

Devin 7.2k Jan 4, 2023
WordPress plugin working (almost) like a child theme.

Step child Description TL;DR: WordPress plugin working (almost) like a child theme. Sometimes the project you're thrown into doesn't have a child them

Johan Jonk Stenström 2 Jun 10, 2022
Wordpress advance plugin with multi purposes features like live chat, custom post type, custom forms, word count etc

What is this? This is wordpress plugin which is created for the multi purpose uses. How to use? Simply install the plugin. Go to the plugin settigs pa

Amir Liaqat 2 Jun 23, 2022
🚀 All-in-one enhancement plugin that improves WordPress & BuddyBoss integration.

=== Buddyboss Extended Add-on === Contributors: jcatama Donate link: https://www.paypal.me/jcatama Tags: buddyboss, buddypress, learndash, forums, gro

Albert Catama 1 Oct 12, 2022
🚀 A distributed content delivery network (DCDN) integration plugin for wordpress

DCDN Engine - WordPress DCDN Plugin Simply integrate a Distributed Content Delivery Network (DCDN) into your WordPress site. Preview Plugin Installati

daqNext 6 Nov 30, 2022
Rabbit Framework - A modern way of building WordPress plugins

Rabbit Framework - A modern way of building WordPress plugins. About Rabbit Framework is a modern framework designed to be a solid foundation for your

VeronaLabs 8 Nov 20, 2022
Tema boilerplate WordPress

WordPress boilerplate based on _s Hi. I'm a starter theme called _s, or underscores, if you like. I'm a theme meant for hacking so don't use me as a P

Victor Ribeiro 1 Dec 16, 2021
A custom WordPress nav walker class to fully implement the Twitter Bootstrap 4.0+ navigation style (v3-branch available for Bootstrap 3) in a custom theme using the WordPress built in menu manager.

WP Bootstrap Navwalker This code in the main repo branch is undergoing a big shakeup to bring it in line with recent standards and to merge and test t

WP Bootstrap 3.3k Jan 5, 2023
Easy handle APlayer on WordPress. A shortcode for WordPress to using APlayer.

Description Easy handle APlayer on WordPress. A shortcode for WordPress to using APlayer. Support [audio] tag, compatible with AMP. Requirement WordPr

Karl Chen 24 Nov 3, 2022
A WordPress plugin to suspend WordPress sites automagically. Simple and lightweight, no annoying ads and fancy settings.

Suspend WP A WordPress plugin to suspend WordPress sites automagically. Simple and lightweight, no annoying ads and fancy settings. ?? Demo (coming so

Waren Gonzaga 3 Nov 15, 2021