Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
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
- In/with dependencies:
- symfony/*, twig/twig, composer/* #3156558: Upgrade dependencies prior to 9.1.0 and #3157296: Upgrade dependencies prior to 9.1.0
- Update symfony contract php requirement - https://github.com/symfony/symfony/pull/37494
- phpspec/prophecy - https://github.com/phpspec/prophecy/pull/470
- phpdocumentor/reflection-docblock - https://github.com/phpDocumentor/ReflectionDocBlock/pull/240
- Symfony CMF #3176576: Update to Symfony CMF 2.3.3
- #3127141: Use PHPUnit 9 for PHP 7.4+, while keeping support for PHPUnit 8.4 in PHP 7.3 and #3128631: Update dependencies composer/composer ^2 and composer/semver to ^3
- doctrine/reflection - #3179284: Update dependencies for Drupal 9.1 and 9.2
- fabpot/goutte - #3180092: Update fabpot/goutte to 3.3.1 for PHP 8 compatibility + follow-up #3176655: Deprecate GoutteDriver use in core and use Behat\Mink\Driver\BrowserKitDriver directly instead
- #3181240: Upgrade typo3/phar-stream-wrapper 3.1.6
- #3180207: Update laminas-diactoros, laminas-escaper and laminas-feed for PHP 8 compatibility
- Within Drupal itself:
- #3183420: Override \Behat\Mink\Driver\Selenium2Driver::uploadFile() in DrupalSelenium2Driver
- #3098281: Ensure that 'composer update' evaluates dependencies using the correct PHP version
- #3183825: Use absolute instead of relative paths within the packages.json created in ComposerProjectTemplatesTest
- #3174928: Improve the stability of core JS testing and prepare for update of MinkSelenium2Driver (this is not compatibility but we can't update to the latest MinkSelenium2Driver without it)
- #3156887: \Drupal\system\Plugin\ImageToolkit\GDToolkit needs to support \GdImage objects for PHP 8 compatibility
- #3177541: stream_open() needs to cope with a failure in \Drupal\Core\StreamWrapper\LocalStream::getLocalPath() better
- #3178998: Update error types and messages for PHP 8
- #3179013: EntityRouteEnhancerTest has a meaningless assertion that breaks in PHP 8
- #3177557: \Drupal\error_test\Controller\ErrorTestController::generateWarnings() notice is not a notice in PHP 8
- #3177545: \Drupal\field\Entity\FieldStorageConfig::getCardinality() needs to be more type safe
- #3177546: \Drupal\views\Plugin\views\PluginBase::listLanguages() incorrectly uses in_array() resulting in listing additional languages
- #3177590: ViewsFormBase::getForm() re-uses $key and relies on odd PHP 7 behaviour
- #3156542: \ReflectionParameter::getClass() is deprecated in PHP 8.0
- #3174662: Encapsulate \PDOStatement instead of extending from it
- #3156944: Support nullable typehints and return types in ProxyBuilder and as a result support PHP 8
- #3156878: \Drupal\Component\Datetime\DateTimePlus should pass correct parameter types to checkdate()
- #3156885: Change \Drupal\error_test\Controller\ErrorTestController::generateWarnings() to throw E_NOTICE error compatible with PHP 8
- #3156879: \Drupal\Component\Utility\Bytes::toInt() - ensure $size is a number type
- #3156882: \Drupal\Core\Render\Element\StatusReport::preRenderGroupRequirements() and \Drupal\user\PermissionHandler::sortPermissions() sorts return bools
- #3156883: \Drupal\Core\Url ensure fragment is not an empty string
- #3170648: CKEditorPluginManager::getEnabledButtons throws warnings on PHP 8.0.0 beta3
- #3173958: PHP 8 error: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given
- #3173888: Error handler signature changed in PHP 8
- #3174038: ZipArchive::open(): Using empty file as ZipArchive is deprecated in PHP 8
- #3173991: Incorrect passby reference use in anonymous functions
- #3174158: Division by zero is not warning since PHP 8.0 beta4
- #3174022: call_user_func_array() and named arguments in PHP 8
- #2736777: MySQL on PHP 8 now errors when committing or rolling back when there is no active transaction
Remaining tasks
See above.
User interface changes
None.
API changes
Data model changes
None.
Release notes snippet
Comment | File | Size | Author |
---|---|---|---|
#130 | RUN_PHPSNIF_D9.txt | 32.06 KB | webservant316 |
Comments
Comment #2
Gábor HojtsyComment #3
Gábor HojtsyComment #4
catchWhat'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?
Comment #5
Liam MorlandComment #6
andypostSchedule of PHP8 releases published https://wiki.php.net/todo/php80
Comment #7
xjmComment #8
xjmI'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.
Comment #9
Liam MorlandComment #11
MixologicI 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)
Comment #12
Liam MorlandComment #13
volegerFilled followup #3156542: \ReflectionParameter::getClass() is deprecated in PHP 8.0
Comment #14
heddnCross-posting: https://github.com/symfony/symfony/issues/36872
Comment #15
heddnOpened #3156558: Upgrade dependencies prior to 9.1.0 to try bumping our symfony dependency version to at least 4.4.10.
Comment #16
volegerFilled the issue for doctrine/reflection https://github.com/doctrine/reflection/issues/46
Comment #17
alexpott#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.
Comment #18
alexpott#3127141: Use PHPUnit 9 for PHP 7.4+, while keeping support for PHPUnit 8.4 in PHP 7.3 is a prerequisite for this issue.
Comment #19
alexpottBased 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.
Comment #20
Liam MorlandNo 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.
Comment #21
alexpottAdding 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.
Comment #22
alexpottComment #23
alexpottComment #24
alexpottComment #25
alexpottComment #26
alexpottComment #27
xjmUnfortunately 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").
Comment #28
andypostAnother 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
Comment #29
andypostQuick test with
ab -c 2 -n 100
showing a bit improvement on php8 (JIT disabled)PHP 7.4
PHP 8.0 alpha with patch from #3156595
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
Comment #30
alexpottFwiw #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...
Comment #31
andypostFixed issues sorted in summary, last php 8 alpha 3 will be released in 3 days, next checkpoint is Aug 3
Comment #32
Gábor HojtsyPHP 8 alpha 3 is out! https://www.php.net/index.php#id2020-07-23-1
Comment #33
cilefen CreditAttribution: cilefen as a volunteer commented#3161223: Use PHP 7.0 "spaceship" operator for user sort functions where possible
Comment #34
Gábor HojtsyLet's differentiate this from #3145797: [META] Make Drupal 7 core compatible with PHP 8.0.
Comment #35
markdorisonUpdated summary.
Comment #36
alexpott#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.
Comment #37
markdorison@alexpott Ahh sorry. I saw it added as a child issue and was trying to keep the summary up to date.
Comment #38
andypostIt's valid issue, just hard to catch when weights are the same
Comment #39
andypostcommited #3156879: \Drupal\Component\Utility\Bytes::toInt() - ensure $size is a number type
Comment #40
andypostNew 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
Comment #41
andypostFiled separate issue #3163133: Upgrade composer/composer and phpspec/prophecy dependencies to support PHP 8.0
Because
phpspec/prophecy
and its dependencyphpdocumentor/reflection-docblock
got new releases containing fixes mentioned in ISComment #42
Gábor HojtsyUpdating issue summary now that PHP 8 beta is out.
Comment #43
xjm#3157296: Upgrade dependencies prior to 9.1.0 was committed on Tuesday; does that cover PHP 8 compatibility for all our dependencies?
Comment #44
MixologicI 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.
Comment #45
MixologicHave 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
Comment #46
andypostAlso current constraints
Filed to test https://github.com/symfony-cmf/Routing/pull/255
Comment #47
hussainwebAdded #3170648: CKEditorPluginManager::getEnabledButtons throws warnings on PHP 8.0.0 beta3 to the IS.
Comment #48
Gábor Hojtsy@andypost: are there issues to update some of those (where updates are available)? Thanks!
Comment #49
andypost@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
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
Comment #50
Gábor HojtsySeparate outstanding Drupal core issues (which are mostly RTBC) from done ones.
Comment #51
Gábor HojtsyComment #52
Gábor HojtsyComment #53
Gábor Hojtsy#3156878: \Drupal\Component\Datetime\DateTimePlus should pass correct parameter types to checkdate() landed too, moving there.
Comment #54
Gábor Hojtsy#3156944: Support nullable typehints and return types in ProxyBuilder and as a result support PHP 8 also landed.
Comment #55
Liam MorlandIn #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."
Comment #56
Gábor HojtsyUpdated dependency list with a full-on table.
Comment #57
Gábor HojtsyMove more dependency links from comments to the summary table.
Comment #58
Gábor HojtsyAdding 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.
Comment #59
Gábor HojtsyAdding https://github.com/paragonie/random_compat/pull/164 for random_compat.
Comment #60
Gábor Hojtsy#3156880: \Drupal\Core\Access\CsrfTokenGenerator::validate() - ensure $token is a string before calling hash_equals() also landed.
That leaves #3156542: \ReflectionParameter::getClass() is deprecated in PHP 8.0 and #3156881: Various methods of \Drupal\Core\Database\StatementInterface have changed their signature for PHP 8 that are still immediately actionable in Drupal core :) Reviews welcome there.
Comment #61
alexpottAdding #3173888: Error handler signature changed in PHP 8 - a new issue.
Comment #62
alexpottAdding #3173958: PHP 8 error: method_exists(): Argument #1 ($object_or_class) must be of type object|string, null given
Comment #63
alexpottAdding #3173991: Incorrect passby reference use in anonymous functions
Comment #64
alexpottAdding #3174022: call_user_func_array() and named arguments in PHP 8
Comment #65
alexpottAdding #3174038: ZipArchive::open(): Using empty file as ZipArchive is deprecated in PHP 8
Comment #66
alexpottComment #67
andyposthttps://github.com/minkphp/MinkSelenium2Driver/pull/320 merged, thanks @alexpott
Comment #68
alexpottComment #69
alexpottAdding #3174158: Division by zero is not warning since PHP 8.0 beta4
Comment #70
MixologicMight 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
Comment #71
andypostThe meta to track changes in arguments https://github.com/php/php-tasks/issues/23
Comment #72
andypostComment #73
andypostRe #70 I did check of core
Both
substr()
andmb_substr()
has not a lot of usage with negative 3rd argument, but all places expect it returns stringComment #74
andypostsymfony-cmf/routing 2.3.3
released via https://github.com/symfony-cmf/Routing/pull/255#issuecomment-704173314Comment #75
Gábor Hojtsy#3174022: call_user_func_array() and named arguments in PHP 8 landed. #3174662: Encapsulate \PDOStatement instead of extending from it is currently believed to replace #3156881: Various methods of \Drupal\Core\Database\StatementInterface have changed their signature for PHP 8.
Comment #76
Gábor Hojtsy#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 :)
Comment #77
alexpottComment #78
catchOpened #3176576: Update to Symfony CMF 2.3.3.
Comment #79
Gábor HojtsyTried 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):Updated the issue summary removing even more of the dependencies we don't need to track anymore:
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.
Comment #80
Gábor HojtsyLooked 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.
Comment #81
catchJust committed #3176504: Upgrade dependencies prior to 9.1.0 which updated symfony-cmf and others.
Comment #82
Gábor HojtsyDiscussed 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.
Comment #83
MixologicComment #84
andypostAnother 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
Comment #85
alexpottAdding #3177541: stream_open() needs to cope with a failure in \Drupal\Core\StreamWrapper\LocalStream::getLocalPath() better
Comment #86
alexpottAdding #3177545: \Drupal\field\Entity\FieldStorageConfig::getCardinality() needs to be more type safe
Comment #87
alexpottAdding #3177546: \Drupal\views\Plugin\views\PluginBase::listLanguages() incorrectly uses in_array() resulting in listing additional languages
Comment #88
alexpottAdding #3177590: ViewsFormBase::getForm() re-uses $key and relies on odd PHP 7 behaviour
Comment #89
Gábor HojtsyComment #90
alexpottUpdating todo -> done
Comment #91
alexpottComment #92
alexpottAdded the missing #3177557: \Drupal\error_test\Controller\ErrorTestController::generateWarnings() notice is not a notice in PHP 8
Comment #93
alexpottAdding #3178998: Update error types and messages for PHP 8
Comment #94
alexpottUpdating IS.
Comment #95
alexpottI 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.
Comment #96
andypostThanks to Alex https://github.com/doctrine/reflection/pull/49 is merged
Comment #97
alexpottAdding #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
Comment #98
alexpottUpdating issue summary with recent progress.
Comment #99
alexpottComment #100
alexpottUpdating current state.
Comment #101
alexpottComment #102
xjmWhile 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:
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.
After 9.1.0-beta1, commit PHP 8 fixes to 9.2.x as they're available.
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.
Comment #103
xjmDiscussed 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.
Comment #104
alexpottUpdating 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.
Comment #105
alexpottDid some work on a pull request for typo3's stream wrapper... https://github.com/TYPO3/phar-stream-wrapper/pull/65
Comment #106
alexpottWe've got a new issue due to a fix in PHP 8's MySQL layer - #2736777: MySQL on PHP 8 now errors when committing or rolling back when there is no active transaction
Comment #107
andyposthttps://github.com/laminas/laminas-feed/pull/29/files merged compatibility but now it require phpunit9
Comment #108
alexpott@andypost the phpunit 9 requirement is a dev requirement. It matters not.
Comment #109
Gábor HojtsyOpened #3180092: Update fabpot/goutte to 3.3.1 for PHP 8 compatibility now that 3.3.1 of Goutte is available. That will possibly replace #3176655: Deprecate GoutteDriver use in core and use Behat\Mink\Driver\BrowserKitDriver directly instead.
Comment #110
andypostupdated IS cos commited #3180092: Update fabpot/goutte to 3.3.1 for PHP 8 compatibility
Only one core issue left and few dev-dependencies
Comment #111
andypostFiled 2 PRs to help finish https://github.com/laminas/laminas-diactoros/pull/46#issuecomment-720152303
Comment #112
Gábor HojtsyOpened #3180207: Update laminas-diactoros, laminas-escaper and laminas-feed for PHP 8 compatibility for the Laminas dependencies.
Comment #113
Gábor Hojtsy#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.
Comment #114
andyposthttps://github.com/TYPO3/phar-stream-wrapper/releases/tag/v3.1.6 is out with both PRs merged
Comment #115
andypostFiled child issue #3181240: Upgrade typo3/phar-stream-wrapper 3.1.6
looks it should be backportable to 9.1 at least in next minor
Comment #116
alexpottComment #117
Gábor Hojtsy#3181240: Upgrade typo3/phar-stream-wrapper 3.1.6 landed.
Comment #118
alexpottAdded two new Drupal issues that help with running tests on PHP 8.0 and updated summary.
Comment #119
alexpottUpdating list of issues.
Comment #120
alexpottDrupal 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.
Comment #121
andypostIt will need to update docs at https://www.drupal.org/docs/system-requirements/php-requirements
Comment #122
cilefen CreditAttribution: cilefen as a volunteer commentedIt is released https://www.php.net/archive/2020.php
Comment #123
andypostGreat landing with main changes (multilingual)
https://www.php.net/releases/8.0/
Comment #124
fgmUpdated IS after PHP 8.0.0 release.
Comment #125
catchOriginally 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!
Comment #126
andypostCongratulations 🎉 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
Comment #128
xjmComment #129
Gábor HojtsyNow 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.
Comment #130
webservant316 CreditAttribution: webservant316 commentedProblem/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
Comment #131
ushma CreditAttribution: ushma at TO THE NEW commentedHi webservant316
I am getting similar errors with drupal 9.4.5 and php 8.1. Were you able to fix them ?