10up / wpsnapshots

(DEPRECATED) A project sharing tool for WordPress.
MIT License
216 stars 22 forks source link

Docker container / PHP 7.3 incompatibility with latest WPVIP dev environment #94

Open cameronterry opened 2 years ago

cameronterry commented 2 years ago

Describe the bug

Using WP Snapshots with the latest VIP Go MU Plugins changes, https://github.com/Automattic/vip-go-mu-plugins/commit/51ccaa379bedb39f9f41ef7319d9ddfd87883a0c#diff-f689ded77c119b968db89a8c3b868aa245442df4c8711edbe95d59c0a471d834R18, is causing the following error (project name omitted using *):

$ 10updocker wpsnapshots create
✔ Global services are running...
✔ MariaDB has started...
Project Slug (letters, numbers, _, and - only): ****
Snapshot Description (e.g. Local environment): ******* **** **** **** ****** *****
Include files in snapshot? (Y/n) y
Include database in snapshot? (Y/n) y

Parse error: syntax error, unexpected 'array' (T_ARRAY), expecting function (T_FUNCTION) or const (T_CONST) in /var/www/html/wp-content/mu-plugins/healthcheck/class-healthcheck.php on line 18

That line in particular is using a coding convention introduced in PHP 7.4 and above: https://www.php.net/manual/en/language.types.declarations.php.

Using the following with the Docker CLI confirms that the WP Snapshots container is running PHP 7.3.x, which will be the cause of the error:

$ docker exec -it [container-name] /bin/bash
root@c67ea627f75b:/opt/wpsnapshots# php --version
PHP 7.3.9 (cli) (built: Sep 12 2019 10:57:34) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.9, Copyright (c) 1998-2018 Zend Technologies
    with Xdebug v2.7.0beta1, Copyright (c) 2002-2018, by Derick Rethans

Note: I previously created a ticket here, https://github.com/10up/wp-local-docker-v2/issues/305, incorrectly.

Steps to Reproduce

  1. Create a new environment using the 10updocker CLI.
  2. Add the vip-go-mu-plugins repository to the wp-content/mu-plugins directory, using the guide here: https://docs.wpvip.com/how-tos/local-development/#h-step-2-add-vip-go-mu-plugins.
  3. Run 10updocker wpsnapshots create.

Screenshots, screen recording, code snippet

No response

Environment information

WordPress information

WordPress: 5.9.3 Themes: custom Plugins:

Code of Conduct

claytoncollie commented 1 year ago

I think this is happening to me when I use union types (php8) in my project. It looks like wpsnapshots pulls the Docker image from the wp-local-docker-image repository which only supports up to PHP 7.3

I created a PR in the wp-local-docker-image to add PHP 7.4, 8.0, and 8.1 --> https://github.com/10up/wp-local-docker-images/pull/27

@tlovett1 Can you confirm that this is the case with PHP support in wpsnapshots?

cc @johnwatkins0 @tylercherpak