From 3647d87eb29e3ee3ae88157d9b9a6fcd7677daa2 Mon Sep 17 00:00:00 2001 From: Alex Skrypnyk Date: Mon, 16 Mar 2026 16:06:06 +1100 Subject: [PATCH] [#2388] Switched to PHP 8.4. --- .docker/cli.dockerfile | 4 ++-- .docker/php.dockerfile | 4 ++-- .../handler_process/_baseline/.docker/cli.dockerfile | 4 ++-- .../handler_process/_baseline/.docker/php.dockerfile | 4 ++-- .../tests/Fixtures/handler_process/_baseline/phpcs.xml | 2 +- .../Fixtures/handler_process/_baseline/phpunit.xml | 2 +- .../Fixtures/handler_process/_baseline/rector.php | 6 +++--- .../tests/phpunit/Drupal/SettingsTestCase.php | 10 +--------- .../Fixtures/handler_process/hosting_acquia/phpcs.xml | 2 +- .../tests/phpunit/Drupal/SettingsTestCase.php | 2 +- .../hosting_project_name___acquia/phpcs.xml | 2 +- .../tests/phpunit/Drupal/SettingsTestCase.php | 2 +- .../Fixtures/handler_process/theme_claro/phpcs.xml | 2 +- .../Fixtures/handler_process/theme_olivero/phpcs.xml | 2 +- .../Fixtures/handler_process/theme_stark/phpcs.xml | 2 +- .../tests/phpunit/Drupal/SettingsTestCase.php | 2 +- .../tests/phpunit/Drupal/SettingsTestCase.php | 2 +- .../tools_groups_no_fe_lint_no_theme/phpcs.xml | 2 +- .../phpcs.xml | 2 +- .../handler_process/tools_no_eslint_no_theme/phpcs.xml | 2 +- .../tests/phpunit/Drupal/SettingsTestCase.php | 2 +- .../tests/phpunit/Drupal/SettingsTestCase.php | 2 +- .../tools_no_stylelint_no_theme/phpcs.xml | 2 +- .../Traits/Subtests/SubtestDockerComposeTrait.php | 6 ++++-- composer.json | 4 ++-- phpcs.xml | 2 +- phpstan.neon | 2 +- phpunit.xml | 2 +- rector.php | 6 +++--- tests/phpunit/Drupal/SettingsTestCase.php | 10 +--------- 30 files changed, 42 insertions(+), 56 deletions(-) diff --git a/.docker/cli.dockerfile b/.docker/cli.dockerfile index cccee8a2c..e1ab443f1 100644 --- a/.docker/cli.dockerfile +++ b/.docker/cli.dockerfile @@ -4,10 +4,10 @@ # # hadolint global ignore=DL3018,SC2174 # -# @see https://hub.docker.com/r/uselagoon/php-8.3-cli-drupal/tags +# @see https://hub.docker.com/r/uselagoon/php-8.4-cli-drupal/tags # @see https://github.com/uselagoon/lagoon-images/tree/main/images/php-cli-drupal -FROM uselagoon/php-8.3-cli-drupal:26.2.0 +FROM uselagoon/php-8.4-cli-drupal:26.2.0 # Add missing variables. # @todo Remove once https://github.com/uselagoon/lagoon/issues/3121 is resolved. diff --git a/.docker/php.dockerfile b/.docker/php.dockerfile index 2ed3803fb..ea9ffb839 100644 --- a/.docker/php.dockerfile +++ b/.docker/php.dockerfile @@ -5,14 +5,14 @@ # # hadolint global ignore=DL3018 # -# @see https://hub.docker.com/r/uselagoon/php-8.3-fpm/tags +# @see https://hub.docker.com/r/uselagoon/php-8.4-fpm/tags # @see https://github.com/uselagoon/lagoon-images/tree/main/images/php-fpm ARG CLI_IMAGE # hadolint ignore=DL3006 FROM ${CLI_IMAGE:-cli} AS cli -FROM uselagoon/php-8.3-fpm:26.2.0 +FROM uselagoon/php-8.4-fpm:26.2.0 RUN apk add --no-cache tzdata diff --git a/.vortex/installer/tests/Fixtures/handler_process/_baseline/.docker/cli.dockerfile b/.vortex/installer/tests/Fixtures/handler_process/_baseline/.docker/cli.dockerfile index 9e87d92f9..74e2ff42e 100644 --- a/.vortex/installer/tests/Fixtures/handler_process/_baseline/.docker/cli.dockerfile +++ b/.vortex/installer/tests/Fixtures/handler_process/_baseline/.docker/cli.dockerfile @@ -4,10 +4,10 @@ # # hadolint global ignore=DL3018,SC2174 # -# @see https://hub.docker.com/r/uselagoon/php-8.3-cli-drupal/tags +# @see https://hub.docker.com/r/uselagoon/php-8.4-cli-drupal/tags # @see https://github.com/uselagoon/lagoon-images/tree/main/images/php-cli-drupal -FROM uselagoon/php-8.3-cli-drupal:__VERSION__ +FROM uselagoon/php-8.4-cli-drupal:__VERSION__ # Add missing variables. # @todo Remove once https://github.com/uselagoon/lagoon/issues/3121 is resolved. diff --git a/.vortex/installer/tests/Fixtures/handler_process/_baseline/.docker/php.dockerfile b/.vortex/installer/tests/Fixtures/handler_process/_baseline/.docker/php.dockerfile index f9f34eac4..ac2e827db 100644 --- a/.vortex/installer/tests/Fixtures/handler_process/_baseline/.docker/php.dockerfile +++ b/.vortex/installer/tests/Fixtures/handler_process/_baseline/.docker/php.dockerfile @@ -5,14 +5,14 @@ # # hadolint global ignore=DL3018 # -# @see https://hub.docker.com/r/uselagoon/php-8.3-fpm/tags +# @see https://hub.docker.com/r/uselagoon/php-8.4-fpm/tags # @see https://github.com/uselagoon/lagoon-images/tree/main/images/php-fpm ARG CLI_IMAGE # hadolint ignore=DL3006 FROM ${CLI_IMAGE:-cli} AS cli -FROM uselagoon/php-8.3-fpm:__VERSION__ +FROM uselagoon/php-8.4-fpm:__VERSION__ RUN apk add --no-cache tzdata diff --git a/.vortex/installer/tests/Fixtures/handler_process/_baseline/phpcs.xml b/.vortex/installer/tests/Fixtures/handler_process/_baseline/phpcs.xml index 158de37aa..f4c3c9f4f 100644 --- a/.vortex/installer/tests/Fixtures/handler_process/_baseline/phpcs.xml +++ b/.vortex/installer/tests/Fixtures/handler_process/_baseline/phpcs.xml @@ -27,7 +27,7 @@ - + web\/themes\/custom\/.*\/build\/.* diff --git a/.vortex/installer/tests/Fixtures/handler_process/_baseline/phpunit.xml b/.vortex/installer/tests/Fixtures/handler_process/_baseline/phpunit.xml index 21bd94261..5d93de023 100644 --- a/.vortex/installer/tests/Fixtures/handler_process/_baseline/phpunit.xml +++ b/.vortex/installer/tests/Fixtures/handler_process/_baseline/phpunit.xml @@ -28,7 +28,7 @@ cacheDirectory=".phpunit.cache"> - + diff --git a/.vortex/installer/tests/Fixtures/handler_process/_baseline/rector.php b/.vortex/installer/tests/Fixtures/handler_process/_baseline/rector.php index d53dbdfdf..53e1ebb46 100644 --- a/.vortex/installer/tests/Fixtures/handler_process/_baseline/rector.php +++ b/.vortex/installer/tests/Fixtures/handler_process/_baseline/rector.php @@ -79,9 +79,9 @@ '*/vendor/*', '*/node_modules/*', ]) - // PHP version upgrade sets - modernizes syntax to PHP 8.3. - // Includes all rules from PHP 5.3 through 8.3. - ->withPhpSets(php83: TRUE) + // PHP version upgrade sets - modernizes syntax to PHP 8.4. + // Includes all rules from PHP 5.3 through 8.4. + ->withPhpSets(php84: TRUE) // Code quality improvement sets. ->withPreparedSets( codeQuality: TRUE, diff --git a/.vortex/installer/tests/Fixtures/handler_process/_baseline/tests/phpunit/Drupal/SettingsTestCase.php b/.vortex/installer/tests/Fixtures/handler_process/_baseline/tests/phpunit/Drupal/SettingsTestCase.php index 556adaa18..61d34f50e 100644 --- a/.vortex/installer/tests/Fixtures/handler_process/_baseline/tests/phpunit/Drupal/SettingsTestCase.php +++ b/.vortex/installer/tests/Fixtures/handler_process/_baseline/tests/phpunit/Drupal/SettingsTestCase.php @@ -176,15 +176,7 @@ protected function setEnvVars(array $vars): void { protected static function getRealEnvVarsFilteredNoValues(array $prefixes = []): array { $vars = getenv(); - $vars = array_filter(array_keys($vars), static function (string $key) use ($prefixes): bool { - foreach ($prefixes as $prefix) { - if (str_starts_with($key, $prefix)) { - return TRUE; - } - } - - return FALSE; - }); + $vars = array_filter(array_keys($vars), static fn(string $key): bool => array_any($prefixes, fn($prefix): bool => str_starts_with($key, (string) $prefix))); return array_fill_keys($vars, NULL); } diff --git a/.vortex/installer/tests/Fixtures/handler_process/hosting_acquia/phpcs.xml b/.vortex/installer/tests/Fixtures/handler_process/hosting_acquia/phpcs.xml index 3e85d577c..424441ef3 100644 --- a/.vortex/installer/tests/Fixtures/handler_process/hosting_acquia/phpcs.xml +++ b/.vortex/installer/tests/Fixtures/handler_process/hosting_acquia/phpcs.xml @@ -14,7 +14,7 @@ @@ -30,10 +30,10 @@ - + - web\/themes\/custom\/.*\/build\/.* diff --git a/.vortex/installer/tests/Fixtures/handler_process/hosting_acquia/tests/phpunit/Drupal/SettingsTestCase.php b/.vortex/installer/tests/Fixtures/handler_process/hosting_acquia/tests/phpunit/Drupal/SettingsTestCase.php index e9a6ce416..e6de83c68 100644 --- a/.vortex/installer/tests/Fixtures/handler_process/hosting_acquia/tests/phpunit/Drupal/SettingsTestCase.php +++ b/.vortex/installer/tests/Fixtures/handler_process/hosting_acquia/tests/phpunit/Drupal/SettingsTestCase.php @@ -1,4 +1,4 @@ -@@ -202,7 +202,7 @@ +@@ -194,7 +194,7 @@ * Require settings file. */ protected function requireSettingsFile(array $pre_settings = [], array $pre_config = []): void { diff --git a/.vortex/installer/tests/Fixtures/handler_process/hosting_project_name___acquia/phpcs.xml b/.vortex/installer/tests/Fixtures/handler_process/hosting_project_name___acquia/phpcs.xml index 3e85d577c..424441ef3 100644 --- a/.vortex/installer/tests/Fixtures/handler_process/hosting_project_name___acquia/phpcs.xml +++ b/.vortex/installer/tests/Fixtures/handler_process/hosting_project_name___acquia/phpcs.xml @@ -14,7 +14,7 @@ @@ -30,10 +30,10 @@ - + - web\/themes\/custom\/.*\/build\/.* diff --git a/.vortex/installer/tests/Fixtures/handler_process/hosting_project_name___acquia/tests/phpunit/Drupal/SettingsTestCase.php b/.vortex/installer/tests/Fixtures/handler_process/hosting_project_name___acquia/tests/phpunit/Drupal/SettingsTestCase.php index e9a6ce416..e6de83c68 100644 --- a/.vortex/installer/tests/Fixtures/handler_process/hosting_project_name___acquia/tests/phpunit/Drupal/SettingsTestCase.php +++ b/.vortex/installer/tests/Fixtures/handler_process/hosting_project_name___acquia/tests/phpunit/Drupal/SettingsTestCase.php @@ -1,4 +1,4 @@ -@@ -202,7 +202,7 @@ +@@ -194,7 +194,7 @@ * Require settings file. */ protected function requireSettingsFile(array $pre_settings = [], array $pre_config = []): void { diff --git a/.vortex/installer/tests/Fixtures/handler_process/theme_claro/phpcs.xml b/.vortex/installer/tests/Fixtures/handler_process/theme_claro/phpcs.xml index 4d4f7f9c4..c9571b311 100644 --- a/.vortex/installer/tests/Fixtures/handler_process/theme_claro/phpcs.xml +++ b/.vortex/installer/tests/Fixtures/handler_process/theme_claro/phpcs.xml @@ -7,7 +7,7 @@ web/sites/default/includes tests @@ -30,10 +29,6 @@ - + - web\/themes\/custom\/.*\/build\/.* diff --git a/.vortex/installer/tests/Fixtures/handler_process/theme_olivero/phpcs.xml b/.vortex/installer/tests/Fixtures/handler_process/theme_olivero/phpcs.xml index 4d4f7f9c4..c9571b311 100644 --- a/.vortex/installer/tests/Fixtures/handler_process/theme_olivero/phpcs.xml +++ b/.vortex/installer/tests/Fixtures/handler_process/theme_olivero/phpcs.xml @@ -7,7 +7,7 @@ web/sites/default/includes tests @@ -30,10 +29,6 @@ - + - web\/themes\/custom\/.*\/build\/.* diff --git a/.vortex/installer/tests/Fixtures/handler_process/theme_stark/phpcs.xml b/.vortex/installer/tests/Fixtures/handler_process/theme_stark/phpcs.xml index 4d4f7f9c4..c9571b311 100644 --- a/.vortex/installer/tests/Fixtures/handler_process/theme_stark/phpcs.xml +++ b/.vortex/installer/tests/Fixtures/handler_process/theme_stark/phpcs.xml @@ -7,7 +7,7 @@ web/sites/default/includes tests @@ -30,10 +29,6 @@ - + - web\/themes\/custom\/.*\/build\/.* diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_be_lint/tests/phpunit/Drupal/SettingsTestCase.php b/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_be_lint/tests/phpunit/Drupal/SettingsTestCase.php index 72fa463b8..222549da9 100644 --- a/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_be_lint/tests/phpunit/Drupal/SettingsTestCase.php +++ b/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_be_lint/tests/phpunit/Drupal/SettingsTestCase.php @@ -14,7 +14,7 @@ abstract class SettingsTestCase extends TestCase { */ protected function setEnvVars(array $vars): void { // Unset the existing environment variable if not set in the test. -@@ -310,7 +308,6 @@ +@@ -302,7 +300,6 @@ * @param string $message * Message to display on failure. * diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_be_lint_circleci/tests/phpunit/Drupal/SettingsTestCase.php b/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_be_lint_circleci/tests/phpunit/Drupal/SettingsTestCase.php index 72fa463b8..222549da9 100644 --- a/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_be_lint_circleci/tests/phpunit/Drupal/SettingsTestCase.php +++ b/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_be_lint_circleci/tests/phpunit/Drupal/SettingsTestCase.php @@ -14,7 +14,7 @@ abstract class SettingsTestCase extends TestCase { */ protected function setEnvVars(array $vars): void { // Unset the existing environment variable if not set in the test. -@@ -310,7 +308,6 @@ +@@ -302,7 +300,6 @@ * @param string $message * Message to display on failure. * diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme/phpcs.xml b/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme/phpcs.xml index 4d4f7f9c4..c9571b311 100644 --- a/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme/phpcs.xml +++ b/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme/phpcs.xml @@ -7,7 +7,7 @@ web/sites/default/includes tests @@ -30,10 +29,6 @@ - + - web\/themes\/custom\/.*\/build\/.* diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/phpcs.xml b/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/phpcs.xml index 4d4f7f9c4..c9571b311 100644 --- a/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/phpcs.xml +++ b/.vortex/installer/tests/Fixtures/handler_process/tools_groups_no_fe_lint_no_theme_circleci/phpcs.xml @@ -7,7 +7,7 @@ web/sites/default/includes tests @@ -30,10 +29,6 @@ - + - web\/themes\/custom\/.*\/build\/.* diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_no_eslint_no_theme/phpcs.xml b/.vortex/installer/tests/Fixtures/handler_process/tools_no_eslint_no_theme/phpcs.xml index 4d4f7f9c4..c9571b311 100644 --- a/.vortex/installer/tests/Fixtures/handler_process/tools_no_eslint_no_theme/phpcs.xml +++ b/.vortex/installer/tests/Fixtures/handler_process/tools_no_eslint_no_theme/phpcs.xml @@ -7,7 +7,7 @@ web/sites/default/includes tests @@ -30,10 +29,6 @@ - + - web\/themes\/custom\/.*\/build\/.* diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpmd/tests/phpunit/Drupal/SettingsTestCase.php b/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpmd/tests/phpunit/Drupal/SettingsTestCase.php index 82777cc65..01f4c5330 100644 --- a/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpmd/tests/phpunit/Drupal/SettingsTestCase.php +++ b/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpmd/tests/phpunit/Drupal/SettingsTestCase.php @@ -6,7 +6,7 @@ */ protected function setEnvVars(array $vars): void { // Unset the existing environment variable if not set in the test. -@@ -310,7 +309,6 @@ +@@ -302,7 +301,6 @@ * @param string $message * Message to display on failure. * diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpmd_circleci/tests/phpunit/Drupal/SettingsTestCase.php b/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpmd_circleci/tests/phpunit/Drupal/SettingsTestCase.php index 82777cc65..01f4c5330 100644 --- a/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpmd_circleci/tests/phpunit/Drupal/SettingsTestCase.php +++ b/.vortex/installer/tests/Fixtures/handler_process/tools_no_phpmd_circleci/tests/phpunit/Drupal/SettingsTestCase.php @@ -6,7 +6,7 @@ */ protected function setEnvVars(array $vars): void { // Unset the existing environment variable if not set in the test. -@@ -310,7 +309,6 @@ +@@ -302,7 +301,6 @@ * @param string $message * Message to display on failure. * diff --git a/.vortex/installer/tests/Fixtures/handler_process/tools_no_stylelint_no_theme/phpcs.xml b/.vortex/installer/tests/Fixtures/handler_process/tools_no_stylelint_no_theme/phpcs.xml index 4d4f7f9c4..c9571b311 100644 --- a/.vortex/installer/tests/Fixtures/handler_process/tools_no_stylelint_no_theme/phpcs.xml +++ b/.vortex/installer/tests/Fixtures/handler_process/tools_no_stylelint_no_theme/phpcs.xml @@ -7,7 +7,7 @@ web/sites/default/includes tests @@ -30,10 +29,6 @@ - + - web\/themes\/custom\/.*\/build\/.* diff --git a/.vortex/tests/phpunit/Traits/Subtests/SubtestDockerComposeTrait.php b/.vortex/tests/phpunit/Traits/Subtests/SubtestDockerComposeTrait.php index 426d7506f..97160e7f0 100644 --- a/.vortex/tests/phpunit/Traits/Subtests/SubtestDockerComposeTrait.php +++ b/.vortex/tests/phpunit/Traits/Subtests/SubtestDockerComposeTrait.php @@ -307,10 +307,12 @@ protected function subtestDockerComposeDrushPhpIni(): void { '1024M', 'PHP memory_limit should be 1024M after second change' ); + $this->processRun('docker compose exec -T cli php -r "echo E_ALL;"'); + $e_all = trim($this->processGet()->getOutput()); $this->cmd( 'docker compose exec -T cli php -r "echo ini_get(\'error_reporting\');"', - '32767', - 'PHP error_reporting should be 32767 (E_ALL) from drush.ini' + $e_all, + 'PHP error_reporting should be E_ALL from drush.ini' ); $this->logSubstep('Restore drush.ini to original state.'); diff --git a/composer.json b/composer.json index d2f91dab0..6344448c9 100644 --- a/composer.json +++ b/composer.json @@ -4,7 +4,7 @@ "license": "proprietary", "type": "project", "require": { - "php": ">=8.3", + "php": ">=8.4", "composer/installers": "^2.3", "cweagans/composer-patches": "^2.0", "drupal/admin_toolbar": "^3.6.3", @@ -98,7 +98,7 @@ "bump-after-update": true, "discard-changes": true, "platform": { - "php": "8.3.30" + "php": "8.4.17" }, "sort-packages": true }, diff --git a/phpcs.xml b/phpcs.xml index cd01e2efb..5acef47ce 100644 --- a/phpcs.xml +++ b/phpcs.xml @@ -27,7 +27,7 @@ - + web\/themes\/custom\/.*\/build\/.* diff --git a/phpstan.neon b/phpstan.neon index edfe05f52..e95ef2dd1 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -11,7 +11,7 @@ parameters: level: 7 - phpVersion: 80330 + phpVersion: 80417 paths: - web/modules/custom diff --git a/phpunit.xml b/phpunit.xml index 21bd94261..5d93de023 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -28,7 +28,7 @@ cacheDirectory=".phpunit.cache"> - + diff --git a/rector.php b/rector.php index d53dbdfdf..53e1ebb46 100644 --- a/rector.php +++ b/rector.php @@ -79,9 +79,9 @@ '*/vendor/*', '*/node_modules/*', ]) - // PHP version upgrade sets - modernizes syntax to PHP 8.3. - // Includes all rules from PHP 5.3 through 8.3. - ->withPhpSets(php83: TRUE) + // PHP version upgrade sets - modernizes syntax to PHP 8.4. + // Includes all rules from PHP 5.3 through 8.4. + ->withPhpSets(php84: TRUE) // Code quality improvement sets. ->withPreparedSets( codeQuality: TRUE, diff --git a/tests/phpunit/Drupal/SettingsTestCase.php b/tests/phpunit/Drupal/SettingsTestCase.php index c0c71f1b2..c814b32a0 100644 --- a/tests/phpunit/Drupal/SettingsTestCase.php +++ b/tests/phpunit/Drupal/SettingsTestCase.php @@ -179,15 +179,7 @@ protected function setEnvVars(array $vars): void { protected static function getRealEnvVarsFilteredNoValues(array $prefixes = []): array { $vars = getenv(); - $vars = array_filter(array_keys($vars), static function (string $key) use ($prefixes): bool { - foreach ($prefixes as $prefix) { - if (str_starts_with($key, $prefix)) { - return TRUE; - } - } - - return FALSE; - }); + $vars = array_filter(array_keys($vars), static fn(string $key): bool => array_any($prefixes, fn($prefix): bool => str_starts_with($key, (string) $prefix))); return array_fill_keys($vars, NULL); }