Problem/Motivation

Make sure Drupal keeps being compatible with PHP 8. Work with dependencies as needed. See #3086374: Make Drupal 8 & 9 compatible with PHP 7.4 for how we did it with PHP 7.4. PHP 8.0 is now released, see https://www.php.net/archive/2020.php#2020-11-26-3

Proposed resolution

The following task list has been determined by testing on #3156595: Make Drupal 9 installable on PHP8.

1. Dependency updates to support PHP 8

To produce a list of dependencies that are blocking PHP 8 support, you can do the following. Make sure you use PHP 7.4+ to run it.

$ git clone --branch 9.1.x https://git.drupalcode.org/project/drupal.git whynotphp8
$ cd whynotphp8/
$ composer install
$ composer update
$ composer why-not php:8

NONE!

2. Internal Drupal issues

NONE!

DONE

Remaining tasks

See above.

User interface changes

None.

API changes

Data model changes

None.

Release notes snippet

CommentFileSizeAuthor
#130 RUN_PHPSNIF_D9.txt32.06 KBwebservant316
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

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

Gábor Hojtsy’s picture

Title: Ensure compatibility of Drupal with PHP 8 (as it evolved) » Ensure compatibility of Drupal with PHP 8 (as it evolves)
Gábor Hojtsy’s picture

Status: Active » Postponed
catch’s picture

What's the next step here? The PHP team is using the master branch for PHP 8 (7.4 is branched), so should we ask for a DrupalCI environment with master or is it too early to get anything useful out of it?

Liam Morland’s picture

andypost’s picture

Schedule of PHP8 releases published https://wiki.php.net/todo/php80

xjm’s picture

Title: Ensure compatibility of Drupal with PHP 8 (as it evolves) » [meta] Ensure compatibility of Drupal with PHP 8 (as it evolves)
Version: 9.0.x-dev » 8.8.x-dev
Category: Task » Plan
Status: Postponed » Active
  • The PHP 7.4 issue is fixed, so this no longer needs to be postponed.
  • Converting to a meta because there will probably be many specific changes needed.
  • D8 will also need PHP 8 support, and we'll want to backport bugfix-eligible changes to the production branch, so setting to 8.8.x for now. (Most changes will probably only land in 8.9 once it becomes the bugfix branch, but the issue will be bulk-updated.)
xjm’s picture

Issue tags: +Needs followup

I'm not sure a DrupalCI environment with PHP's master branch is going to work out well, but we should at least file an issue in the infra queue to add an alpha1 environment once that's available in mid-June.

Liam Morland’s picture

Issue tags: +PHP 8.0

Version: 8.8.x-dev » 8.9.x-dev

Drupal 8.8.7 was released on June 3, 2020 and is the final full bugfix release for the Drupal 8.8.x series. Drupal 8.8.x will not receive any further development aside from security fixes. Sites should prepare to update to Drupal 8.9.0 or Drupal 9.0.0 for ongoing support.

Bug reports should be targeted against the 8.9.x-dev branch from now on, and new development or disruptive changes should be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Mixologic’s picture

I have deployed the php8.0.0alpha1 containers to drupalci.

There are two available:

one which causes drupalci to use --ignore-platform-reqs on composer installation so that we can actually start the tests, (example test run here: https://www.drupal.org/pift-ci-job/1745431)
and one which does not do that so we can see the composer errors and attempt to get them fixed upstream. (example test run here: https://www.drupal.org/pift-ci-job/1745432)

Liam Morland’s picture

Title: [meta] Ensure compatibility of Drupal with PHP 8 (as it evolves) » [meta] Ensure compatibility of Drupal with PHP 8.0 (as it evolves)
voleger’s picture

heddn’s picture

heddn’s picture

Opened #3156558: Upgrade dependencies prior to 9.1.0 to try bumping our symfony dependency version to at least 4.4.10.

voleger’s picture

Filled the issue for doctrine/reflection https://github.com/doctrine/reflection/issues/46

alexpott’s picture

#3156595: Make Drupal 9 installable on PHP8 has a patch that allows Drupal to install on PHP 8 - but also shows some of the fun we're going to have because PHP 8 has scalar typehints on internally supplied classes like \PDO.

alexpott’s picture

alexpott’s picture

Issue summary: View changes

Based on work on #3156595: Make Drupal 9 installable on PHP8 I've updated the issue summary with all the vendor fixes we need to make Drupal 9 green on PHP 8. Initial analysis looks good in terms of no of this requiring a new major version. But things are likely to be very tricky for Drupal 8 due to the PHP 7.0 compatibility requirement. For example, it's likely that the only compatible phpdocumentor/reflection-docblock with PHP 8 will have a minimum PHP version of 7.2.

Liam Morland’s picture

For example, it's likely that the only compatible phpdocumentor/reflection-docblock with PHP 8 will have a minimum PHP version of 7.2.

No version of PHP prior to 7.2 is supported anymore, so I don't see this as a problem. It is reasonable that people upgrading their Drupal will upgrade their PHP to go with it. This is a policy change, however.

alexpott’s picture

Issue summary: View changes

Adding the scope of work so far for Drupal changes. It's not too bad at all as far as I can see and much of it can be done for Drupal 8 & 9 now.

alexpott’s picture

Issue summary: View changes
alexpott’s picture

Issue summary: View changes
alexpott’s picture

Issue summary: View changes
alexpott’s picture

Issue summary: View changes
alexpott’s picture

Issue summary: View changes
xjm’s picture

Unfortunately we can't just drop support for PHP 7.0 and 7.1 in our LTS release -- we would have had to make that announcement more than a year ago. So we might have to do some gymnastics or bridge code for specific dependencies that don't support all the PHP versions we do. (a.k.a. the "Drupal PHPUnit Challenge").

andypost’s picture

Another options is set requirements to prevent install LTS on php8 as suggested in #3156651: Prevent Drupal 8.9 and 9.0 from being installed on PHP 8

andypost’s picture

Quick test with ab -c 2 -n 100 showing a bit improvement on php8 (JIT disabled)

PHP 7.4

Concurrency Level:      2
Time taken for tests:   0.534 seconds
Complete requests:      100
Failed requests:        0
Total transferred:      1186000 bytes
HTML transferred:       1136500 bytes
Requests per second:    187.23 [#/sec] (mean)
Time per request:       10.682 [ms] (mean)
Time per request:       5.341 [ms] (mean, across all concurrent requests)
Transfer rate:          2168.56 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       0
Processing:     7   10   2.0     11      19
Waiting:        7   10   2.0     10      18
Total:          8   10   2.0     11      19

Percentage of the requests served within a certain time (ms)
  50%     11
  66%     11
  75%     11
  80%     11
  90%     12
  95%     15
  98%     17
  99%     19
 100%     19 (longest request)

PHP 8.0 alpha with patch from #3156595

Concurrency Level:      2
Time taken for tests:   0.505 seconds
Complete requests:      100
Failed requests:        0
Total transferred:      1186600 bytes
HTML transferred:       1136500 bytes
Requests per second:    198.14 [#/sec] (mean)
Time per request:       10.094 [ms] (mean)
Time per request:       5.047 [ms] (mean, across all concurrent requests)
Transfer rate:          2296.03 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       0
Processing:     7   10   1.5     10      14
Waiting:        7   10   1.5     10      14
Total:          7   10   1.5     10      14

Percentage of the requests served within a certain time (ms)
  50%     10
  66%     11
  75%     11
  80%     11
  90%     12
  95%     12
  98%     14
  99%     14
 100%     14 (longest request)

Refs
- https://beberlei.de/2020/07/05/what_to_look_out_for_when_testing_php_jit...
- https://stitcher.io/blog/jit-in-real-life-web-applications

alexpott’s picture

Issue tags: -Needs followup

Fwiw #3156651: Prevent Drupal 8.9 and 9.0 from being installed on PHP 8 is kinda pointless atm - here's a list of vendor deps once we're run composer update that still don't support PHP 8. We've got a long way to with all of this...

  • composer/semver
  • doctrine/reflection
  • laminas/laminas-diactoros
  • laminas/laminas-escaper
  • laminas/laminas-feed
  • laminas/laminas-stdlib
  • laminas/laminas-zendframework-bridge
  • symfony-cmf/routing
  • symfony/process
  • symfony/routing
  • typo3/phar-stream-wrapper
  • composer/composer
  • fabpot/goutte
  • phar-io/manifest
  • phar-io/version
  • phpdocumentor/reflection-docblock
  • phpspec/prophecy
  • phpunit/php-code-coverage
  • phpunit/php-file-iterator
  • phpunit/php-timer
  • phpunit/php-token-stream
  • phpunit/phpunit
  • sebastian/code-unit-reverse-lookup
  • sebastian/comparator
  • sebastian/environment
  • sebastian/exporter
  • sebastian/global-state
  • sebastian/object-enumerator
  • sebastian/object-reflector
  • sebastian/recursion-context
  • sebastian/resource-operations
  • sebastian/type
  • symfony/css-selector
  • symfony/finder
  • theseer/tokenizer
  • webmozart/assert
andypost’s picture

Issue summary: View changes

Fixed issues sorted in summary, last php 8 alpha 3 will be released in 3 days, next checkpoint is Aug 3

Gábor Hojtsy’s picture

cilefen’s picture

Gábor Hojtsy’s picture

Title: [meta] Ensure compatibility of Drupal with PHP 8.0 (as it evolves) » [meta] Ensure compatibility of Drupal 8/9 with PHP 8.0 (as it evolves)
markdorison’s picture

Issue summary: View changes

Updated summary.

alexpott’s picture

Issue summary: View changes

#3161223: Use PHP 7.0 "spaceship" operator for user sort functions where possible is not necessary for PHP 8 compatibility as far as I can see.

markdorison’s picture

@alexpott Ahh sorry. I saw it added as a child issue and was trying to keep the summary up to date.

andypost’s picture

It's valid issue, just hard to catch when weights are the same

andypost’s picture

andypost’s picture

New release of Symfony 4.4.11 adds support for union types and few bugfixes https://github.com/symfony/symfony/blob/4.4/CHANGELOG-4.4.md

Also composer 1.10.10 got fixed support for php8 https://github.com/composer/composer/releases/tag/1.10.10

Probably #3157296-14: Upgrade dependencies prior to 9.1.0 needs split for this changes

andypost’s picture

Filed separate issue #3163133: Upgrade composer/composer and phpspec/prophecy dependencies to support PHP 8.0
Because phpspec/prophecy and its dependency phpdocumentor/reflection-docblock got new releases containing fixes mentioned in IS

Gábor Hojtsy’s picture

Issue summary: View changes

Updating issue summary now that PHP 8 beta is out.

xjm’s picture

#3157296: Upgrade dependencies prior to 9.1.0 was committed on Tuesday; does that cover PHP 8 compatibility for all our dependencies?

Mixologic’s picture

I ran a test to find out: https://www.drupal.org/pift-ci-job/1810516 shows that there's a significant number of deps still incompatible with PHP 8.

Mixologic’s picture

Have php 8 compatible versions:

composer/composer -> 2.0.0-alpha3
composer/semver -> 3.0.0
phar-io/manifest -> 2.0.1
phar-io/version -> 3.0.2

Upstream PR's / Issues

https://github.com/doctrine/reflection/pull/43
https://github.com/laminas/laminas-diactoros/pull/46
https://github.com/phpspec/prophecy/issues/491

No upstream issues or PR's

https://github.com/laminas/laminas-escaper
https://github.com/laminas/laminas-feed
https://github.com/symfony-cmf/Routing
https://github.com/TYPO3/phar-stream-wrapper
https://github.com/FriendsOfPHP/Goutte

All fixed by using phpunit 9 for php8:

phpunit/php-code-coverage
phpunit/php-file-iterator
phpunit/php-timer
phpunit/php-token-stream
phpunit/phpunit
sebastian/code-unit-reverse-lookup
sebastian/comparator
sebastian/environment
sebastian/exporter
sebastian/global-state
sebastian/object-enumerator
sebastian/object-reflector
sebastian/recursion-context
sebastian/resource-operations
sebastian/type

andypost’s picture

Also current constraints

$ composer why-not php:8
composer/composer                   1.10.10  requires  php (^5.3.2 || ^7.0)  
composer/semver                     1.5.1    requires  php (^5.3.2 || ^7.0)  
doctrine/reflection                 1.2.1    requires  php (^7.1)            
fabpot/goutte                       v3.3.0   requires  php (^7.1.3)          
laminas/laminas-diactoros           2.3.1    requires  php (^7.1)            
laminas/laminas-escaper             2.6.1    requires  php (^5.6 || ^7.0)    
laminas/laminas-feed                2.12.3   requires  php (^5.6 || ^7.0)    
phar-io/manifest                    1.0.3    requires  php (^5.6 || ^7.0)    
phar-io/version                     2.0.1    requires  php (^5.6 || ^7.0)    
phpspec/prophecy                    1.11.1   requires  php (^7.2)            
phpunit/php-code-coverage           7.0.10   requires  php (^7.2)            
phpunit/php-file-iterator           2.0.2    requires  php (^7.1)            
phpunit/php-timer                   2.1.2    requires  php (^7.1)            
phpunit/php-token-stream            3.1.1    requires  php (^7.1)            
phpunit/phpunit                     8.5.8    requires  php (^7.2)            
sebastian/code-unit-reverse-lookup  1.0.1    requires  php (^5.6 || ^7.0)    
sebastian/comparator                3.0.2    requires  php (^7.1)            
sebastian/diff                      3.0.2    requires  php (^7.1)            
sebastian/environment               4.2.3    requires  php (^7.1)            
sebastian/exporter                  3.1.2    requires  php (^7.0)            
sebastian/global-state              3.0.0    requires  php (^7.2)            
sebastian/object-enumerator         3.0.3    requires  php (^7.0)            
sebastian/object-reflector          1.1.1    requires  php (^7.0)            
sebastian/recursion-context         3.0.0    requires  php (^7.0)            
sebastian/resource-operations       2.0.1    requires  php (^7.1)            
sebastian/type                      1.1.3    requires  php (^7.2)            
symfony-cmf/routing                 2.3.2    requires  php (^7.2)            
typo3/phar-stream-wrapper           v3.1.5   requires  php (^7.0)            

Filed to test https://github.com/symfony-cmf/Routing/pull/255

hussainweb’s picture

Gábor Hojtsy’s picture

@andypost: are there issues to update some of those (where updates are available)? Thanks!

andypost’s picture

@Gábor Hojtsy there's some updates but ATM update of composer has no effect on PHP 8 support and main blockers are phpunit 9 and composer 2

The diff of composer changes against #46

-composer/composer                   1.10.10  requires  php (^5.3.2 || ^7.0)  
-composer/semver                     1.5.1    requires  php (^5.3.2 || ^7.0)  
+composer/composer                   1.10.13  requires  php (^5.3.2 || ^7.0)  
+composer/semver                     1.7.0    requires  php (^5.3.2 || ^7.0)  
-laminas/laminas-diactoros           2.3.1    requires  php (^7.1)            
+laminas/laminas-diactoros           2.4.1    requires  php (^7.1)            

There's one of dependencies of https://github.com/symfony-cmf/Routing/pull/255 commited but yesterday I did rebase and travis fails in coredump( Personally I'm waiting for RC1 of 8.0, it could help to convince maintainers to start pay more attention to coming version

Gábor Hojtsy’s picture

Issue summary: View changes

Separate outstanding Drupal core issues (which are mostly RTBC) from done ones.

Gábor Hojtsy’s picture

Issue summary: View changes
Gábor Hojtsy’s picture

Issue summary: View changes
Gábor Hojtsy’s picture

Gábor Hojtsy’s picture

Liam Morland’s picture

In #3156944-8: Support nullable typehints and return types in ProxyBuilder and as a result support PHP 8, it states that Drupal "9.1 will be the first possible version to support PHP 8. However feel free to reopen if you disagree."

Gábor Hojtsy’s picture

Issue summary: View changes

Updated dependency list with a full-on table.

Gábor Hojtsy’s picture

Issue summary: View changes

Move more dependency links from comments to the summary table.

Gábor Hojtsy’s picture

Issue summary: View changes

Adding the phar stream wrapper issue link @longwave shared on slack and merging the two composer rows, because updating to composer 2 would resolve both apparently.

Gábor Hojtsy’s picture

Issue summary: View changes
Gábor Hojtsy’s picture

alexpott’s picture

alexpott’s picture

alexpott’s picture

alexpott’s picture

alexpott’s picture

alexpott’s picture

Issue summary: View changes
andypost’s picture

alexpott’s picture

Issue summary: View changes
alexpott’s picture

Mixologic’s picture

Might be worth it to audit our usages of substr to see if we're expecting 'false' in any situation:
https://php.watch/versions/8.0/substr-out-of-bounds

andypost’s picture

The meta to track changes in arguments https://github.com/php/php-tasks/issues/23

andypost’s picture

Issue summary: View changes
andypost’s picture

Re #70 I did check of core
Both substr() and mb_substr() has not a lot of usage with negative 3rd argument, but all places expect it returns string

andypost’s picture

Gábor Hojtsy’s picture

Issue summary: View changes

#3127141: Use PHPUnit 9 for PHP 7.4+, while keeping support for PHPUnit 8.4 in PHP 7.3 landed, yay! That resolves more than half of the dependency issues :) Removed from the IS :)

alexpott’s picture

Issue summary: View changes
catch’s picture

Gábor Hojtsy’s picture

Issue summary: View changes

Tried reproducing the composer why-not from the issue summary but due to #3135247: Composer's "prefer-stable" setting cannot be relied on to produce a stable release the create-project method does not work. So the updated command sequence is this (thanks for the tips @alexpott):

$ git clone --branch 9.1.x https://git.drupalcode.org/project/drupal.git whynotphp8
$ cd whynotphp8/
$ composer install
$ composer update
$ composer why-not php:8
composer/composer     1.10.13 requires php (^5.3.2 || ^7.0)  
composer/semver      1.7.1  requires php (^5.3.2 || ^7.0)  
doctrine/reflection    1.2.1  requires php (^7.1)       
fabpot/goutte       v3.3.0  requires php (^7.1.3)      
laminas/laminas-diactoros 2.4.1  requires php (^7.1)       
laminas/laminas-escaper  2.6.1  requires php (^5.6 || ^7.0)   
laminas/laminas-feed    2.12.3  requires php (^5.6 || ^7.0)   
typo3/phar-stream-wrapper v3.1.5  requires php (^7.0)

Updated the issue summary removing even more of the dependencies we don't need to track anymore:

  • paragonie/random_compat (not even installed anymore on PHP 7.4)
  • phar-io/manifest 1.0.3 (updates to 2.0.1 now, which is PHP 8 compatible)
  • phar-io/version 2.0.1 (updates now to 3.0.2 which is PHP 8 compatible)
  • phpspec/prophecy 1.11.1 (updates to 1.12.1 now which is PHP 8 compatible)
  • symfony-cmf/routing 2.3.2 (updates to 2.3.3 which is the first PHP 8 compatible version)

Even though not all of these are updates in composer.lock, I decided to remove them because we don't need the dependencies to update themselves anymore, and our composer json boundaries already allow the updated versions to be used. This leaves the above listed dependencies to fix.

Gábor Hojtsy’s picture

Issue summary: View changes

Looked up the two missing Laminas issues and added. Also did not find any issue for Goutte (closed or open or within pull requests), so opened one at https://github.com/FriendsOfPHP/Goutte/issues/429. All added to the issue summary. This should ensure all dependencies have a point where we can help them get ready.

catch’s picture

Just committed #3176504: Upgrade dependencies prior to 9.1.0 which updated symfony-cmf and others.

Gábor Hojtsy’s picture

Issue summary: View changes

Discussed the Goutte situation with @fapbot and @alexpott. Goutte itself is deprecated (last release was over 5 years ago) and Symfony includes the functionality. Opened #3176655: Deprecate GoutteDriver use in core and use Behat\Mink\Driver\BrowserKitDriver directly instead to explore moving to that.

Mixologic’s picture

andypost’s picture

Another dependency doctrine/reflection#43 sounds like it needs replacement for PHP 8
So could be solved in #3156542: \ReflectionParameter::getClass() is deprecated in PHP 8.0

alexpott’s picture

alexpott’s picture

alexpott’s picture

alexpott’s picture

Gábor Hojtsy’s picture

Issue summary: View changes
alexpott’s picture

Issue summary: View changes

Updating todo -> done

alexpott’s picture

Issue summary: View changes
alexpott’s picture

alexpott’s picture

alexpott’s picture

Issue summary: View changes

Updating IS.

alexpott’s picture

Issue summary: View changes

I opened a new PR against doctrine/reflection for PHP 8 compatibility - and it's got a bit more of a positive feedback - see https://github.com/doctrine/reflection/pull/43 - upldating issue summary to point to the open PR.

andypost’s picture

alexpott’s picture

Title: [meta] Ensure compatibility of Drupal 8/9 with PHP 8.0 (as it evolves) » [meta] Ensure compatibility of Drupal 9 with PHP 8.0 (as it evolves)
Issue summary: View changes

Adding #3179284: Update dependencies for Drupal 9.1 and 9.2 to issue summary and updating title to reflect discussion with @catch and @xjm about likely compatibility with Drupal 8 and PHP 8

alexpott’s picture

Issue summary: View changes

Updating issue summary with recent progress.

alexpott’s picture

Issue summary: View changes
alexpott’s picture

Issue summary: View changes

Updating current state.

alexpott’s picture

Issue summary: View changes
xjm’s picture

Version: 8.9.x-dev » 9.1.x-dev
Issue tags: +beta target

While we usually are strict about not backporting things like dependency updates after beta1, in the case of these issues I think we should at least consider backports up to RC1 (because PHP 8 compatibility in 9.1 would be groovy). I'd suggest:

  1. Commit any PHP 8 compatibility fixes to both 9.2.x and 9.1.x up until the release of 9.1.0-beta1. Indicate in the beta1 release notes which blockers are outstanding and that those blockers may result in additional dependency updates after beta1.
     

  2. After 9.1.0-beta1, commit PHP 8 fixes to 9.2.x as they're available.
     

  3. If all PHP 8 fixes land in 9.2.x prior to 9.1.0-rc1, backport them to 9.1.x at the same time once that's achieved. Release 9.1.0-beta2 with these fixes unless it's already the RC window.

Changing the version to 9.1.x because, as discussed in #3156651: Prevent Drupal 8.9 and 9.0 from being installed on PHP 8, the release and framework managers have agreed that these changes are too disruptive for 8.9.x to support PHP 8.

xjm’s picture

Discussed further with @catch. It's possible that some of the remaining blockers could be solved with patch releases of the affected dependencies. Patch-level updates are technically backportable during any release phase, including in patch releases (with a release note and a good reason), so those could be backported as they land. We'll evaluate each issue as it gets committed to 9.2.x.

alexpott’s picture

Issue summary: View changes

Updating issue summary with current state and moving #3176655: Deprecate GoutteDriver use in core and use Behat\Mink\Driver\BrowserKitDriver directly instead to the Drupal list as this is the most likely place it is going to be solved.

alexpott’s picture

Issue summary: View changes

Did some work on a pull request for typo3's stream wrapper... https://github.com/TYPO3/phar-stream-wrapper/pull/65

alexpott’s picture

Issue summary: View changes
andypost’s picture

https://github.com/laminas/laminas-feed/pull/29/files merged compatibility but now it require phpunit9

alexpott’s picture

@andypost the phpunit 9 requirement is a dev requirement. It matters not.

Gábor Hojtsy’s picture

andypost’s picture

Issue summary: View changes

updated IS cos commited #3180092: Update fabpot/goutte to 3.3.1 for PHP 8 compatibility

Only one core issue left and few dev-dependencies

andypost’s picture

Gábor Hojtsy’s picture

Gábor Hojtsy’s picture

Issue summary: View changes

#2736777: MySQL on PHP 8 now errors when committing or rolling back when there is no active transaction landed. No more internal issues, only dependency updates. Updated summary.

andypost’s picture

andypost’s picture

Filed child issue #3181240: Upgrade typo3/phar-stream-wrapper 3.1.6

looks it should be backportable to 9.1 at least in next minor

alexpott’s picture

Issue summary: View changes
Gábor Hojtsy’s picture

alexpott’s picture

Issue summary: View changes

Added two new Drupal issues that help with running tests on PHP 8.0 and updated summary.

alexpott’s picture

Issue summary: View changes

Updating list of issues.

alexpott’s picture

Issue summary: View changes
Status: Active » Reviewed & tested by the community

Drupal 9.1 and Drupal 9.2 are both PHP 8 compatible according to our tests and are composer installable.

Going to mark this as RTBC

We're still awaiting a release of behat/mink-selenium2-driver but we've got a work around in 9.1.x and 9.2.x and there is a follow-up already to remove the work around when we update.

I've credited all the commenters on this issue.

andypost’s picture

cilefen’s picture

andypost’s picture

Great landing with main changes (multilingual)
https://www.php.net/releases/8.0/

fgm’s picture

Issue summary: View changes

Updated IS after PHP 8.0.0 release.

catch’s picture

Status: Reviewed & tested by the community » Fixed

Originally didn't think there was any chance of getting it done for 9.1.x, then suddenly it seemed in grasp, then it didn't again, then we got there at the last minute.

I don't think there's anything else to do in this meta, and https://www.drupal.org/docs/system-requirements/php-requirements is updated, so marking fixed!

andypost’s picture

Congratulations 🎉 btw json extension should be bundled since 8.0 but there's still ability to build it shared so makes sense to keep it in requirements

Status: Fixed » Closed (fixed)

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

Gábor Hojtsy’s picture

Now that a PHP 8.1-alpha1 environment is available, I opened #3220021: [meta] Ensure compatibility of Drupal 9 with PHP 8.1 (as it evolves) and sent if for a test run.

webservant316’s picture

FileSize
32.06 KB

Problem/Motivation

I am going through the process of upgrading from D7 to D9 and also upgrading PHP71 to PHP74 or PHP80. So I am running PHP_CodeSniffer-3.6.1 and PHPCompatibility-9.3.5 on the Drupal codebase to test for issues.
Steps to reproduce

Install D9 and PHP_CodeSniffer-3.6.1 and PHPCompatibility-9.3.5. Run the test.
Proposed resolution

Maybe someone should review the warnings and errors below to see if there are any real issues. I see that D9 claims to support PHP80 from D9.1.0. However, D9.2 is spitting out of lot of warnings and errors from PHP_CodeSniffer-3.6.1 and PHPCompatibility-9.3.5.

Errors and warnings list inline below and attached as csv.

File,Line,Column,Type,Message,Source,Severity,Fixable
"/drupal9/core/modules/user/src/Plugin/rest/resource/UserRegistrationResource.php",3,1,warning,"'resource' is a soft reserved keyword as of PHP version 7.0 and should not be used to name a class, interface or trait or as part of a namespace (T_NAMESPACE)",PHPCompatibility.Keywords.ForbiddenNamesAsDeclared.resourceFound,5,0
"/drupal9/core/modules/contact/src/Plugin/rest/resource/ContactMessageResource.php",3,1,warning,"'resource' is a soft reserved keyword as of PHP version 7.0 and should not be used to name a class, interface or trait or as part of a namespace (T_NAMESPACE)",PHPCompatibility.Keywords.ForbiddenNamesAsDeclared.resourceFound,5,0
"/drupal9/core/modules/file/src/Plugin/rest/resource/FileUploadResource.php",3,1,warning,"'resource' is a soft reserved keyword as of PHP version 7.0 and should not be used to name a class, interface or trait or as part of a namespace (T_NAMESPACE)",PHPCompatibility.Keywords.ForbiddenNamesAsDeclared.resourceFound,5,0
"/drupal9/core/modules/dblog/src/Plugin/rest/resource/DBLogResource.php",3,1,warning,"'resource' is a soft reserved keyword as of PHP version 7.0 and should not be used to name a class, interface or trait or as part of a namespace (T_NAMESPACE)",PHPCompatibility.Keywords.ForbiddenNamesAsDeclared.resourceFound,5,0
"/drupal9/core/modules/system/tests/src/Functional/Form/ModulesListFormWebTest.php",31,5,error,"\"$this\" can no longer be used in a plain function or method since PHP 7.1.",PHPCompatibility.Variables.ForbiddenThisUseContexts.OutsideObjectContext,5,0
"/drupal9/core/modules/system/tests/src/Functional/Form/ModulesListFormWebTest.php",31,24,error,"\"$this\" can no longer be used in a plain function or method since PHP 7.1.",PHPCompatibility.Variables.ForbiddenThisUseContexts.OutsideObjectContext,5,0
"/drupal9/core/modules/system/tests/src/Functional/Form/ModulesListFormWebTest.php",41,5,error,"\"$this\" can no longer be used in a plain function or method since PHP 7.1.",PHPCompatibility.Variables.ForbiddenThisUseContexts.OutsideObjectContext,5,0
"/drupal9/core/modules/system/tests/src/Functional/Form/ModulesListFormWebTest.php",44,5,error,"\"$this\" can no longer be used in a plain function or method since PHP 7.1.",PHPCompatibility.Variables.ForbiddenThisUseContexts.OutsideObjectContext,5,0
"/drupal9/core/modules/system/tests/src/Functional/Form/ModulesListFormWebTest.php",47,5,error,"\"$this\" can no longer be used in a plain function or method since PHP 7.1.",PHPCompatibility.Variables.ForbiddenThisUseContexts.OutsideObjectContext,5,0
"/drupal9/core/modules/system/tests/src/Functional/Form/ModulesListFormWebTest.php",50,5,error,"\"$this\" can no longer be used in a plain function or method since PHP 7.1.",PHPCompatibility.Variables.ForbiddenThisUseContexts.OutsideObjectContext,5,0
"/drupal9/core/modules/system/tests/src/Functional/Form/ModulesListFormWebTest.php",55,5,error,"\"$this\" can no longer be used in a plain function or method since PHP 7.1.",PHPCompatibility.Variables.ForbiddenThisUseContexts.OutsideObjectContext,5,0
"/drupal9/core/modules/field/tests/src/Kernel/String/UuidItemTest.php",3,1,error,"'string' is a reserved keyword as of PHP version 7.0 and should not be used to name a class, interface or trait or as part of a namespace (T_NAMESPACE)",PHPCompatibility.Keywords.ForbiddenNamesAsDeclared.stringFound,5,0
"/drupal9/core/modules/field/tests/src/Kernel/String/StringFormatterTest.php",3,1,error,"'string' is a reserved keyword as of PHP version 7.0 and should not be used to name a class, interface or trait or as part of a namespace (T_NAMESPACE)",PHPCompatibility.Keywords.ForbiddenNamesAsDeclared.stringFound,5,0
"/drupal9/core/modules/field/tests/src/Kernel/String/RawStringFormatterTest.php",3,1,error,"'string' is a reserved keyword as of PHP version 7.0 and should not be used to name a class, interface or trait or as part of a namespace (T_NAMESPACE)",PHPCompatibility.Keywords.ForbiddenNamesAsDeclared.stringFound,5,0
"/drupal9/core/modules/field/tests/src/Kernel/String/UuidFormatterTest.php",3,1,error,"'string' is a reserved keyword as of PHP version 7.0 and should not be used to name a class, interface or trait or as part of a namespace (T_NAMESPACE)",PHPCompatibility.Keywords.ForbiddenNamesAsDeclared.stringFound,5,0
"/drupal9/core/modules/field/tests/src/Functional/String/StringFieldTest.php",3,1,error,"'string' is a reserved keyword as of PHP version 7.0 and should not be used to name a class, interface or trait or as part of a namespace (T_NAMESPACE)",PHPCompatibility.Keywords.ForbiddenNamesAsDeclared.stringFound,5,0
"/drupal9/core/modules/migrate/tests/src/Unit/process/ExtractTest.php",19,5,error,"\"$this\" can no longer be used in a plain function or method since PHP 7.1.",PHPCompatibility.Variables.ForbiddenThisUseContexts.OutsideObjectContext,5,0
"/drupal9/core/modules/migrate/tests/src/Unit/process/ExtractTest.php",27,14,error,"\"$this\" can no longer be used in a plain function or method since PHP 7.1.",PHPCompatibility.Variables.ForbiddenThisUseContexts.OutsideObjectContext,5,0
"/drupal9/core/modules/migrate/tests/src/Unit/process/ExtractTest.php",27,57,error,"\"$this\" can no longer be used in a plain function or method since PHP 7.1.",PHPCompatibility.Variables.ForbiddenThisUseContexts.OutsideObjectContext,5,0
"/drupal9/core/modules/migrate/tests/src/Unit/process/ExtractTest.php",27,83,error,"\"$this\" can no longer be used in a plain function or method since PHP 7.1.",PHPCompatibility.Variables.ForbiddenThisUseContexts.OutsideObjectContext,5,0
"/drupal9/core/modules/migrate/tests/src/Unit/process/ExtractTest.php",28,5,error,"\"$this\" can no longer be used in a plain function or method since PHP 7.1.",PHPCompatibility.Variables.ForbiddenThisUseContexts.OutsideObjectContext,5,0
"/drupal9/core/modules/migrate/tests/src/Unit/process/ExtractTest.php",37,5,error,"\"$this\" can no longer be used in a plain function or method since PHP 7.1.",PHPCompatibility.Variables.ForbiddenThisUseContexts.OutsideObjectContext,5,0
"/drupal9/core/modules/migrate/tests/src/Unit/process/ExtractTest.php",39,5,error,"\"$this\" can no longer be used in a plain function or method since PHP 7.1.",PHPCompatibility.Variables.ForbiddenThisUseContexts.OutsideObjectContext,5,0
"/drupal9/core/modules/migrate/tests/src/Unit/process/ExtractTest.php",40,5,error,"\"$this\" can no longer be used in a plain function or method since PHP 7.1.",PHPCompatibility.Variables.ForbiddenThisUseContexts.OutsideObjectContext,5,0
"/drupal9/core/modules/migrate/tests/src/Unit/process/ExtractTest.php",40,38,error,"\"$this\" can no longer be used in a plain function or method since PHP 7.1.",PHPCompatibility.Variables.ForbiddenThisUseContexts.OutsideObjectContext,5,0
"/drupal9/core/modules/migrate/tests/src/Unit/process/ExtractTest.php",40,64,error,"\"$this\" can no longer be used in a plain function or method since PHP 7.1.",PHPCompatibility.Variables.ForbiddenThisUseContexts.OutsideObjectContext,5,0
"/drupal9/core/modules/migrate/tests/src/Unit/process/ExtractTest.php",47,5,error,"\"$this\" can no longer be used in a plain function or method since PHP 7.1.",PHPCompatibility.Variables.ForbiddenThisUseContexts.OutsideObjectContext,5,0
"/drupal9/core/modules/migrate/tests/src/Unit/process/ExtractTest.php",48,5,error,"\"$this\" can no longer be used in a plain function or method since PHP 7.1.",PHPCompatibility.Variables.ForbiddenThisUseContexts.OutsideObjectContext,5,0
"/drupal9/core/modules/migrate/tests/src/Unit/process/ExtractTest.php",49,5,error,"\"$this\" can no longer be used in a plain function or method since PHP 7.1.",PHPCompatibility.Variables.ForbiddenThisUseContexts.OutsideObjectContext,5,0
"/drupal9/core/modules/migrate/tests/src/Unit/process/ExtractTest.php",49,48,error,"\"$this\" can no longer be used in a plain function or method since PHP 7.1.",PHPCompatibility.Variables.ForbiddenThisUseContexts.OutsideObjectContext,5,0
"/drupal9/core/modules/migrate/tests/src/Unit/process/ExtractTest.php",49,74,error,"\"$this\" can no longer be used in a plain function or method since PHP 7.1.",PHPCompatibility.Variables.ForbiddenThisUseContexts.OutsideObjectContext,5,0
"/drupal9/core/modules/migrate/tests/src/Unit/process/ExtractTest.php",57,51,error,"\"$this\" can no longer be used in a plain function or method since PHP 7.1.",PHPCompatibility.Variables.ForbiddenThisUseContexts.OutsideObjectContext,5,0
"/drupal9/core/modules/migrate/tests/src/Unit/process/ExtractTest.php",57,77,error,"\"$this\" can no longer be used in a plain function or method since PHP 7.1.",PHPCompatibility.Variables.ForbiddenThisUseContexts.OutsideObjectContext,5,0
"/drupal9/core/modules/migrate/tests/src/Unit/process/ExtractTest.php",58,5,error,"\"$this\" can no longer be used in a plain function or method since PHP 7.1.",PHPCompatibility.Variables.ForbiddenThisUseContexts.OutsideObjectContext,5,0
"/drupal9/core/modules/migrate/tests/src/Unit/process/ExtractTest.php",76,5,error,"\"$this\" can no longer be used in a plain function or method since PHP 7.1.",PHPCompatibility.Variables.ForbiddenThisUseContexts.OutsideObjectContext,5,0
"/drupal9/core/modules/migrate/tests/src/Unit/process/ExtractTest.php",78,14,error,"\"$this\" can no longer be used in a plain function or method since PHP 7.1.",PHPCompatibility.Variables.ForbiddenThisUseContexts.OutsideObjectContext,5,0
"/drupal9/core/modules/migrate/tests/src/Unit/process/ExtractTest.php",78,47,error,"\"$this\" can no longer be used in a plain function or method since PHP 7.1.",PHPCompatibility.Variables.ForbiddenThisUseContexts.OutsideObjectContext,5,0
"/drupal9/core/modules/migrate/tests/src/Unit/process/ExtractTest.php",78,73,error,"\"$this\" can no longer be used in a plain function or method since PHP 7.1.",PHPCompatibility.Variables.ForbiddenThisUseContexts.OutsideObjectContext,5,0
"/drupal9/core/modules/migrate/tests/src/Unit/process/ExtractTest.php",79,5,error,"\"$this\" can no longer be used in a plain function or method since PHP 7.1.",PHPCompatibility.Variables.ForbiddenThisUseContexts.OutsideObjectContext,5,0
"/drupal9/core/modules/media/src/OEmbed/Resource.php",29,1,warning,"'resource' is a soft reserved keyword as of PHP version 7.0 and should not be used to name a class, interface or trait or as part of a namespace (T_CLASS)",PHPCompatibility.Keywords.ForbiddenNamesAsDeclared.resourceFound,5,0
"/drupal9/core/modules/rest/tests/modules/rest_test/src/Plugin/rest/resource/NoSerializationClassTestResource.php",3,1,warning,"'resource' is a soft reserved keyword as of PHP version 7.0 and should not be used to name a class, interface or trait or as part of a namespace (T_NAMESPACE)",PHPCompatibility.Keywords.ForbiddenNamesAsDeclared.resourceFound,5,0
"/drupal9/core/modules/rest/src/Plugin/rest/resource/EntityResourceAccessTrait.php",3,1,warning,"'resource' is a soft reserved keyword as of PHP version 7.0 and should not be used to name a class, interface or trait or as part of a namespace (T_NAMESPACE)",PHPCompatibility.Keywords.ForbiddenNamesAsDeclared.resourceFound,5,0
"/drupal9/core/modules/rest/src/Plugin/rest/resource/EntityResource.php",3,1,warning,"'resource' is a soft reserved keyword as of PHP version 7.0 and should not be used to name a class, interface or trait or as part of a namespace (T_NAMESPACE)",PHPCompatibility.Keywords.ForbiddenNamesAsDeclared.resourceFound,5,0
"/drupal9/core/modules/rest/src/Plugin/rest/resource/EntityResourceValidationTrait.php",3,1,warning,"'resource' is a soft reserved keyword as of PHP version 7.0 and should not be used to name a class, interface or trait or as part of a namespace (T_NAMESPACE)",PHPCompatibility.Keywords.ForbiddenNamesAsDeclared.resourceFound,5,0
"/drupal9/core/lib/Drupal/Core/Form/FormBuilder.php",475,15,warning,"Since PHP 7.0, functions inspecting arguments, like func_get_args(), no longer report the original value as passed to a parameter, but will instead provide the current value. The parameter \"$form_state\" was used, and possibly changed (by reference), on line 473.",PHPCompatibility.FunctionUse.ArgumentFunctionsReportCurrentValue.NeedsInspection,5,0
"/drupal9/core/lib/Drupal/Core/TypedData/Plugin/DataType/Timestamp.php",16,1,error,"The interface DateTimeInterface is intended for type hints only and is not implementable.",PHPCompatibility.Interfaces.InternalInterfaces.datetimeinterfaceFound,5,0
"/drupal9/core/lib/Drupal/Core/TypedData/Plugin/DataType/DateTimeIso8601.php",18,1,error,"The interface DateTimeInterface is intended for type hints only and is not implementable.",PHPCompatibility.Interfaces.InternalInterfaces.datetimeinterfaceFound,5,0
"/drupal9/core/lib/Drupal/Core/Template/TwigExtension.php",617,13,warning,"Since PHP 7.0, functions inspecting arguments, like func_get_args(), no longer report the original value as passed to a parameter, but will instead provide the current value. The parameter \"$element\" was used, and possibly changed (by reference), on line 611.",PHPCompatibility.FunctionUse.ArgumentFunctionsReportCurrentValue.NeedsInspection,5,0
"/drupal9/core/lib/Drupal/Core/Entity/Query/Null/Condition.php",3,1,error,"'null' is a reserved keyword as of PHP version 7.0 and should not be used to name a class, interface or trait or as part of a namespace (T_NAMESPACE)",PHPCompatibility.Keywords.ForbiddenNamesAsDeclared.nullFound,5,0
"/drupal9/core/lib/Drupal/Core/Entity/Query/Null/QueryFactory.php",3,1,error,"'null' is a reserved keyword as of PHP version 7.0 and should not be used to name a class, interface or trait or as part of a namespace (T_NAMESPACE)",PHPCompatibility.Keywords.ForbiddenNamesAsDeclared.nullFound,5,0
"/drupal9/core/lib/Drupal/Core/Entity/Query/Null/Query.php",3,1,error,"'null' is a reserved keyword as of PHP version 7.0 and should not be used to name a class, interface or trait or as part of a namespace (T_NAMESPACE)",PHPCompatibility.Keywords.ForbiddenNamesAsDeclared.nullFound,5,0
"/drupal9/core/lib/Drupal/Component/Utility/Unicode.php",135,17,warning,"INI directive 'mbstring.func_overload' is deprecated since PHP 7.2",PHPCompatibility.IniDirectives.RemovedIniDirectives.mbstring_func_overloadDeprecated,5,0
"/drupal9/core/tests/Drupal/Tests/Core/Entity/Sql/SqlContentEntityStorageTest.php",1436,7,error,"The behaviour of hexadecimal numeric strings was inconsistent prior to PHP 7 and support has been removed in PHP 7. Found: '0x1AFC'",PHPCompatibility.Miscellaneous.ValidIntegers.HexNumericStringFound,5,0
"/drupal9/core/includes/bootstrap.inc",658,13,warning,"Since PHP 7.0, functions inspecting arguments, like func_get_args(), no longer report the original value as passed to a parameter, but will instead provide the current value. The parameter \"$callback\" was used, and possibly changed (by reference), on line 653.",PHPCompatibility.FunctionUse.ArgumentFunctionsReportCurrentValue.NeedsInspection,5,0
"/drupal9/core/includes/errors.inc",62,18,warning,"Since PHP 7.0, functions inspecting arguments, like debug_backtrace(), no longer report the original value as passed to a parameter, but will instead provide the current value. The parameter \"$error_level\" was used, and possibly changed (by reference), on line 59.",PHPCompatibility.FunctionUse.ArgumentFunctionsReportCurrentValue.NeedsInspection,5,0
"/drupal9/core/includes/errors.inc",93,20,warning,"Since PHP 7.0, functions inspecting arguments, like debug_backtrace(), no longer report the original value as passed to a parameter, but will instead provide the current value. The parameter \"$error_level\" was used, and possibly changed (by reference), on line 59.",PHPCompatibility.FunctionUse.ArgumentFunctionsReportCurrentValue.NeedsInspection,5,0
"/drupal9/vendor/laminas/laminas-feed/src/Reader/Reader.php",456,21,warning,"INI directive 'track_errors' is deprecated since PHP 7.2",PHPCompatibility.IniDirectives.RemovedIniDirectives.track_errorsDeprecated,5,0
"/drupal9/vendor/pear/pear-core-minimal/src/PEAR/ErrorStack.php",263,26,warning,"Since PHP 7.0, functions inspecting arguments, like debug_backtrace(), no longer report the original value as passed to a parameter, but will instead provide the current value. The parameter \"$package\" was used, and possibly changed (by reference), on line 258.",PHPCompatibility.FunctionUse.ArgumentFunctionsReportCurrentValue.NeedsInspection,5,0
"/drupal9/vendor/pear/pear-core-minimal/src/PEAR/ErrorStack.php",500,30,warning,"Since PHP 7.0, functions inspecting arguments, like debug_backtrace(), no longer report the original value as passed to a parameter, but will instead provide the current value. The parameter \"$backtrace\" was used, and possibly changed (by reference), on line 499.",PHPCompatibility.FunctionUse.ArgumentFunctionsReportCurrentValue.NeedsInspection,5,0
"/drupal9/vendor/pear/pear-core-minimal/src/PEAR/ErrorStack.php",611,34,warning,"Since PHP 7.0, functions inspecting arguments, like debug_backtrace(), no longer report the original value as passed to a parameter, but will instead provide the current value. The parameter \"$package\" was used, and possibly changed (by reference), on line 607.",PHPCompatibility.FunctionUse.ArgumentFunctionsReportCurrentValue.NeedsInspection,5,0
"/drupal9/vendor/pear/pear-core-minimal/src/PEAR.php",52,10,warning,"INI directive 'track_errors' is deprecated since PHP 7.2",PHPCompatibility.IniDirectives.RemovedIniDirectives.track_errorsDeprecated,5,0
"/drupal9/vendor/pear/pear-core-minimal/src/PEAR.php",767,17,warning,"Function dl() is deprecated since PHP 5.3",PHPCompatibility.FunctionUse.RemovedFunctions.dlDeprecated,5,0
"/drupal9/vendor/pear/pear-core-minimal/src/PEAR.php",767,45,warning,"Function dl() is deprecated since PHP 5.3",PHPCompatibility.FunctionUse.RemovedFunctions.dlDeprecated,5,0
"/drupal9/vendor/pear/pear-core-minimal/src/PEAR.php",897,32,error,"Since PHP 7.0, functions inspecting arguments, like debug_backtrace(), no longer report the original value as passed to a parameter, but will instead provide the current value. The parameter \"$mode\" was changed on line 887.",PHPCompatibility.FunctionUse.ArgumentFunctionsReportCurrentValue.Changed,5,0
"/drupal9/vendor/typo3/phar-stream-wrapper/src/Resolver/PharInvocationResolver.php",133,18,warning,"Since PHP 7.0, functions inspecting arguments, like debug_backtrace(), no longer report the original value as passed to a parameter, but will instead provide the current value. The parameter \"$path\" was used, and possibly changed (by reference), on line 117.",PHPCompatibility.FunctionUse.ArgumentFunctionsReportCurrentValue.NeedsInspection,5,0
"/drupal9/vendor/guzzlehttp/promises/src/functions.php",265,12,warning,"Function Each() is deprecated since PHP 7.2; Use a foreach loop instead",PHPCompatibility.FunctionUse.RemovedFunctions.eachDeprecated,5,0
"/drupal9/vendor/guzzlehttp/promises/src/functions.php",291,12,warning,"Function Each() is deprecated since PHP 7.2; Use a foreach loop instead",PHPCompatibility.FunctionUse.RemovedFunctions.eachDeprecated,5,0
"/drupal9/vendor/guzzlehttp/promises/src/functions.php",312,12,warning,"Function Each() is deprecated since PHP 7.2; Use a foreach loop instead",PHPCompatibility.FunctionUse.RemovedFunctions.eachDeprecated,5,0
"/drupal9/vendor/guzzlehttp/promises/src/Utils.php",154,20,warning,"Function Each() is deprecated since PHP 7.2; Use a foreach loop instead",PHPCompatibility.FunctionUse.RemovedFunctions.eachDeprecated,5,0
"/drupal9/vendor/guzzlehttp/promises/src/Utils.php",202,16,warning,"Function Each() is deprecated since PHP 7.2; Use a foreach loop instead",PHPCompatibility.FunctionUse.RemovedFunctions.eachDeprecated,5,0
"/drupal9/vendor/guzzlehttp/promises/src/Utils.php",261,16,warning,"Function Each() is deprecated since PHP 7.2; Use a foreach loop instead",PHPCompatibility.FunctionUse.RemovedFunctions.eachDeprecated,5,0
"/drupal9/vendor/symfony/yaml/Parser.php",90,56,warning,"INI directive 'mbstring.func_overload' is deprecated since PHP 7.2",PHPCompatibility.IniDirectives.RemovedIniDirectives.mbstring_func_overloadDeprecated,5,0
"/drupal9/vendor/symfony/yaml/Inline.php",71,56,warning,"INI directive 'mbstring.func_overload' is deprecated since PHP 7.2",PHPCompatibility.IniDirectives.RemovedIniDirectives.mbstring_func_overloadDeprecated,5,0
"/drupal9/vendor/symfony/var-dumper/Resources/functions/dump.php",27,20,warning,"Since PHP 7.0, functions inspecting arguments, like func_get_args(), no longer report the original value as passed to a parameter, but will instead provide the current value. The parameter \"$var\" was used, and possibly changed (by reference), on line 20.",PHPCompatibility.FunctionUse.ArgumentFunctionsReportCurrentValue.NeedsInspection,5,0
"/drupal9/vendor/symfony/var-dumper/Caster/ResourceCaster.php",73,22,error,"Extension 'mysql_' is deprecated since PHP 5.5 and removed since PHP 7.0; Use mysqli instead",PHPCompatibility.Extensions.RemovedExtensions.mysql_DeprecatedRemoved,5,0
"/drupal9/vendor/symfony/var-dumper/Caster/ResourceCaster.php",74,26,error,"Extension 'mysql_' is deprecated since PHP 5.5 and removed since PHP 7.0; Use mysqli instead",PHPCompatibility.Extensions.RemovedExtensions.mysql_DeprecatedRemoved,5,0
"/drupal9/vendor/symfony/var-dumper/Caster/ResourceCaster.php",75,24,error,"Extension 'mysql_' is deprecated since PHP 5.5 and removed since PHP 7.0; Use mysqli instead",PHPCompatibility.Extensions.RemovedExtensions.mysql_DeprecatedRemoved,5,0
"/drupal9/vendor/symfony/dependency-injection/TypedReference.php",37,55,warning,"Since PHP 7.0, functions inspecting arguments, like func_get_arg(), no longer report the original value as passed to a parameter, but will instead provide the current value. The parameter \"$name\" was used, and possibly changed (by reference), on line 33.",PHPCompatibility.FunctionUse.ArgumentFunctionsReportCurrentValue.NeedsInspection,5,0
"/drupal9/vendor/symfony/error-handler/ErrorHandler.php",455,30,error,"Since PHP 7.0, functions inspecting arguments, like debug_backtrace(), no longer report the original value as passed to a parameter, but will instead provide the current value. The parameter \"$type\" was changed on line 404.",PHPCompatibility.FunctionUse.ArgumentFunctionsReportCurrentValue.Changed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.cp1026.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-3.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-1.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.cp862.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.cp875.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-9.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.cp950.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-2.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-14.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.cp869.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.cp855.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.cp863.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-13.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.cp874.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.cp864.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-5.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.cp424.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.cp857.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.windows-1254.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.cp865.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-16.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.windows-1256.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-11.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.cp850.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.cp949.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.cp775.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.cp866.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.windows-1252.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.cp936.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.cp852.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-15.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.windows-1258.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.cp860.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.koi8-r.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.cp500.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.us-ascii.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.koi8-u.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.windows-1251.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.cp037.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.windows-1257.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-4.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-10.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-7.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-6.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.cp437.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.cp861.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.cp856.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.windows-1253.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.cp932.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.windows-1250.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.windows-1255.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.cp1006.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.iso-8859-8.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-iconv/Resources/charset/from.cp737.php",1,1,warning,"File has mixed line endings; this may cause incorrect results",Internal.LineEndings.Mixed,5,0
"/drupal9/vendor/symfony/polyfill-intl-normalizer/Normalizer.php",93,80,warning,"INI directive 'mbstring.func_overload' is deprecated since PHP 7.2",PHPCompatibility.IniDirectives.RemovedIniDirectives.mbstring_func_overloadDeprecated,5,0
"/drupal9/vendor/symfony/polyfill-intl-idn/bootstrap.php",133,64,warning,"The constant \"INTL_IDNA_VARIANT_2003\" is deprecated since PHP 7.2",PHPCompatibility.Constants.RemovedConstants.intl_idna_variant_2003Deprecated,5,0
"/drupal9/vendor/symfony/polyfill-intl-idn/bootstrap.php",136,63,warning,"The constant \"INTL_IDNA_VARIANT_2003\" is deprecated since PHP 7.2",PHPCompatibility.Constants.RemovedConstants.intl_idna_variant_2003Deprecated,5,0

ushma’s picture

Hi webservant316
I am getting similar errors with drupal 9.4.5 and php 8.1. Were you able to fix them ?