Problem/Motivation

PHP 8.2 is due 24 November 2022 as per https://github.com/php/php-src/milestone/4. Alpha versions are expected soon. Drupal core must be compatible with it in 9.5 and 10.0 as much as possible.
The release schedule is https://wiki.php.net/todo/php82 - at July 21 is beta1 with frozen API version should be available.
Starting with September 1 final polishing went to Release Candidate phase

Steps to reproduce

Compile PHP 8.2 locally and run a site to reproduce any errors. Once alpha releases become available, this will become easier.

Proposed resolution

See child issues.

When PHP 8.2 is available as a reasonable pre-release to begin testing with, 'un-postpone' this DrupalCI issue to create the environment:
#3283449: Create a DrupalCI Environment for PHP 8.2

Remaining tasks

The must have list is:

The could have list is

See if we need more child issues. Fix the child issues.

User interface changes

N/A

API changes

See child issues.

Data model changes

N/A

Release notes snippet

TBD

CommentFileSizeAuthor
#7 php82a1.png29.57 KBandypost

Comments

Gábor Hojtsy created an issue. See original summary.

hestenet’s picture

Issue summary: View changes
hestenet’s picture

Issue summary: View changes
andypost’s picture

Issue summary: View changes

added notes about July/Sep milestones to summary as https://wiki.php.net/todo/php82 is the release schedule

hestenet’s picture

Issue summary: View changes
andypost’s picture

I was able to make 10.0.x core work after setting display_errors=0 to prevent deprecation messages, otherwise session failed to start

Pushed my docker images https://hub.docker.com/r/skilldlabs/php/tags/?page=1&ordering=last_updat...

/srv # php core/scripts/drupal server --host 0.0.0.0
PHP Deprecated:  Using ${var} in strings is deprecated, use {$var} instead in /srv/vendor/symfony/console/Command/DumpCompletionCommand.php on line 48

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /srv/vendor/symfony/console/Command/DumpCompletionCommand.php on line 48
PHP Deprecated:  Using ${var} in strings is deprecated, use {$var} instead in /srv/vendor/symfony/console/Command/DumpCompletionCommand.php on line 56

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /srv/vendor/symfony/console/Command/DumpCompletionCommand.php on line 56
Drupal development server started: <http://0.0.0.0:8888>
This server is not meant for production use.
PHP Deprecated:  Creation of dynamic property Drupal\Core\Logger\LoggerChannelFactory::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059

Deprecated: Creation of dynamic property Drupal\Core\Logger\LoggerChannelFactory::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059
PHP Deprecated:  Creation of dynamic property Drupal\sqlite\Driver\Database\sqlite\Connection::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059

Deprecated: Creation of dynamic property Drupal\sqlite\Driver\Database\sqlite\Connection::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059
PHP Deprecated:  Creation of dynamic property Drupal\Core\Logger\LogMessageParser::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059

Deprecated: Creation of dynamic property Drupal\Core\Logger\LogMessageParser::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059
PHP Deprecated:  Creation of dynamic property Drupal\dblog\Logger\DbLog::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059

Deprecated: Creation of dynamic property Drupal\dblog\Logger\DbLog::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059
PHP Deprecated:  Creation of dynamic property Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059

Deprecated: Creation of dynamic property Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059
PHP Deprecated:  Creation of dynamic property Drupal\Core\Session\AccountProxy::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059

Deprecated: Creation of dynamic property Drupal\Core\Session\AccountProxy::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059
PHP Deprecated:  Creation of dynamic property Drupal\Core\Site\Settings::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059

Deprecated: Creation of dynamic property Drupal\Core\Site\Settings::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059
PHP Deprecated:  Creation of dynamic property Drupal\Core\Cache\CacheFactory::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059

Deprecated: Creation of dynamic property Drupal\Core\Cache\CacheFactory::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059
PHP Deprecated:  Creation of dynamic property Drupal\Core\Cache\ChainedFastBackendFactory::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059

Deprecated: Creation of dynamic property Drupal\Core\Cache\ChainedFastBackendFactory::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059
PHP Deprecated:  Creation of dynamic property Drupal\Core\Cache\DatabaseCacheTagsChecksum::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059

Deprecated: Creation of dynamic property Drupal\Core\Cache\DatabaseCacheTagsChecksum::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059
PHP Deprecated:  Creation of dynamic property Drupal\Core\Cache\DatabaseBackendFactory::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059

Deprecated: Creation of dynamic property Drupal\Core\Cache\DatabaseBackendFactory::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059
PHP Deprecated:  Creation of dynamic property Drupal\Core\Cache\ApcuBackendFactory::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059

Deprecated: Creation of dynamic property Drupal\Core\Cache\ApcuBackendFactory::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059
PHP Deprecated:  Creation of dynamic property Drupal\Core\Cache\ChainedFastBackend::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059

Deprecated: Creation of dynamic property Drupal\Core\Cache\ChainedFastBackend::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059
PHP Deprecated:  Creation of dynamic property Drupal\Core\Config\CachedStorage::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059

Deprecated: Creation of dynamic property Drupal\Core\Config\CachedStorage::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059
PHP Deprecated:  Creation of dynamic property Drupal\Core\Config\ExtensionInstallStorage::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059

Deprecated: Creation of dynamic property Drupal\Core\Config\ExtensionInstallStorage::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059
PHP Deprecated:  Creation of dynamic property Drupal\Core\Cache\ChainedFastBackend::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059

Deprecated: Creation of dynamic property Drupal\Core\Cache\ChainedFastBackend::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059
PHP Deprecated:  Creation of dynamic property Drupal\Core\Cache\ChainedFastBackend::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059

Deprecated: Creation of dynamic property Drupal\Core\Cache\ChainedFastBackend::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059
PHP Deprecated:  Creation of dynamic property Drupal\Core\Extension\ModuleHandler::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059

Deprecated: Creation of dynamic property Drupal\Core\Extension\ModuleHandler::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059
PHP Deprecated:  Creation of dynamic property Drupal\Core\DependencyInjection\ClassResolver::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059

Deprecated: Creation of dynamic property Drupal\Core\DependencyInjection\ClassResolver::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059
PHP Deprecated:  Creation of dynamic property Drupal\Core\Config\TypedConfigManager::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059

Deprecated: Creation of dynamic property Drupal\Core\Config\TypedConfigManager::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059
PHP Deprecated:  Creation of dynamic property Drupal\Core\Validation\ConstraintManager::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059

Deprecated: Creation of dynamic property Drupal\Core\Validation\ConstraintManager::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059
PHP Deprecated:  Creation of dynamic property Drupal\Core\Config\ConfigFactory::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059

Deprecated: Creation of dynamic property Drupal\Core\Config\ConfigFactory::$_serviceId is deprecated in /srv/vendor/symfony/dependency-injection/ContainerBuilder.php on line 1059
One time login url: <http://0.0.0.0:8888/user/reset/1/1655016141/hgK2swMHD3j9PVzSKEPRaE8BIaWHKx_Y7Al0WqnTsoI/login>
andypost’s picture

StatusFileSize
new29.57 KB

Here's status report page

andypost’s picture

Core throws a lot of direct usage of $_serviceId so it probably needs to fix it via SF

but there's related #2987089: Remove views.module's direct use of the _serviceId property

xjm’s picture

Priority: Normal » Major
Issue tags: +Drupal 10
xjm’s picture

andypost’s picture

Another small issue to fix Callable's syntax #3299327: Replace deprecated static::method() calls for PHP 8.2

andypost’s picture

Another issue in composer

StdErr: You are using the deprecated option "--no-suggest". It has no effect and will break in Composer 3.

andypost’s picture

andypost’s picture

Issue summary: View changes
catch’s picture

Issue summary: View changes
catch’s picture

Issue summary: View changes
bbrala’s picture

Issue summary: View changes
tim.plunkett’s picture

Category: Task » Plan
bbrala’s picture

Issue summary: View changes
andypost’s picture

Also we are blocked on regression https://github.com/php/php-src/issues/9545 which could be resolved in RC3

andypost’s picture

andypost’s picture

catch’s picture

andypost’s picture

9.5 core needs #3299327: Replace deprecated static::method() calls for PHP 8.2 to fix callable syntax, this change looks safe at the moment but needs to check compatibility with PHP 7.3

Otherwise nearly 2k tests still fail https://www.drupal.org/pift-ci-job/2485877

andypost’s picture

Cor 9.5.x fails tests because https://github.com/guzzle/psr7/pull/519#issuecomment-1260290508 was not backported to 1.x branch

Moreover guzzlehttp/psr7 1.9.0 is not declared as compatible with PHP 8.1(

EDIT https://www.drupal.org/pift-ci-job/2485981

Version: 9.5.x-dev » 10.1.x-dev

Drupal 9.5.0-beta2 and Drupal 10.0.0-beta2 were released on September 29, 2022, which means new developments and disruptive changes should now be targeted for the 10.1.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

gábor hojtsy’s picture

Version: 10.1.x-dev » 9.5.x-dev

Opened #3314632: upgrade phpspec/prophecy to 1.16.0 to support PHP 8.2 as a child issue based on discussion in the Drupal 10 readiness meeting.

gábor hojtsy’s picture

Version: 9.5.x-dev » 10.1.x-dev

Version change was not intentional.

longwave’s picture

andypost’s picture

Issue summary: View changes

I closed as fixed #3275851: [META] Fix PHP 8.2 dynamic property deprecations in favour of #3299855: [META] Get rid of #[\AllowDynamicProperties] attribute
Because the remaining follow-up is to get rid of attributes but there's no more deprecations

Also environments already added from "could-have" section so the issue could be marked as fixed after CI will get daily run on 10.x core

SO the remaining #3314632: upgrade phpspec/prophecy to 1.16.0 to support PHP 8.2 is no loner affects core and we can mark the meta as fixed
This issue actually critical for contrib testing so self-contained bug - #3314632: upgrade phpspec/prophecy to 1.16.0 to support PHP 8.2

effulgentsia’s picture

Is there anything left on this issue that needs to block RC? If not, let's remove the "Drupal 10 rc blocker" tag.

catch’s picture

Status: Active » Fixed

I checked DrupalCI and we have daily tests running on PHP 8.2 already, I think this is fixed!

effulgentsia’s picture

Issue tags: -Drupal 10 rc blocker

Great! Untagging as well, since that's what we've done for other rc blockers when they got fixed.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.

joachim’s picture

If 9.5 supports PHP 8.2 then the table at https://www.drupal.org/docs/system-requirements/php-requirements needs to be updated.