Page MenuHomePhabricator

Avoid E_STRICT in MediaWiki and WMF-deployed extension (Deprecated in PHP 8.4)
Closed, ResolvedPublic

Description

Background:

Inspired up the just-released PHPUnit 9.6.21: https://github.com/sebastianbergmann/phpunit/issues/5956, which removes use of this constant to avoid deprecation warnings in PHP 8.4.

Task:

MediaWiki does not "use" E_STRICT for any of its own warnings. However, we do allow PHP itself and other code to use it, and thus our general error handlers do reference this constant in order to check whether it is used. This is enough to trigger a warning when running MediaWiki on PHP 8.4 or later.

Given that this is no longer used, we can remove it in most cases. The exception is perhaps the "MWExceptionHandler" where we can use the same approach as PHPUnit to cast it to E_NOTICE.

See also: Codesearch for E_STRICT

Event Timeline

Change #1075660 had a related patch set uploaded (by Krinkle; author: Krinkle):

[mediawiki/core@master] OutputPage: Remove reference to outdated E_STRICT

https://gerrit.wikimedia.org/r/1075660

Krinkle triaged this task as Low priority.EditedSep 26 2024, 1:45 AM

We can do the bulk of these later. Fixed one while researching the above.

Change #1075660 merged by jenkins-bot:

[mediawiki/core@master] OutputPage: Remove reference to outdated E_STRICT

https://gerrit.wikimedia.org/r/1075660

Change #1079299 had a related patch set uploaded (by Reedy; author: Reedy):

[at-ease@master] AtEase: Stop setting E_STRICT on PHP >= 8.4

https://gerrit.wikimedia.org/r/1079299

Change #1079299 merged by jenkins-bot:

[at-ease@master] AtEase: Stop setting E_STRICT on PHP >= 8.4

https://gerrit.wikimedia.org/r/1079299

Change #1083840 had a related patch set uploaded (by Krinkle; author: Krinkle):

[mediawiki/extensions/Wikibase@master] Remove use of deprecated E_STRICT

https://gerrit.wikimedia.org/r/1083840

Change #1083840 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Remove use of deprecated E_STRICT

https://gerrit.wikimedia.org/r/1083840

Change #1107555 had a related patch set uploaded (by XtexChooser; author: XtexChooser):

[mediawiki/core@master] exception: Convert E_STRICT errors to E_USER_NOTICE

https://gerrit.wikimedia.org/r/1107555

Change #1108101 had a related patch set uploaded (by Krinkle; author: XtexChooser):

[mediawiki/core@REL1_43] exception: Convert E_STRICT errors to E_USER_NOTICE

https://gerrit.wikimedia.org/r/1108101

Change #1108102 had a related patch set uploaded (by Krinkle; author: XtexChooser):

[mediawiki/core@REL1_42] exception: Convert E_STRICT errors to E_USER_NOTICE

https://gerrit.wikimedia.org/r/1108102

Change #1107555 merged by jenkins-bot:

[mediawiki/core@master] exception: Convert E_STRICT errors to E_USER_NOTICE

https://gerrit.wikimedia.org/r/1107555

Change #1108102 merged by jenkins-bot:

[mediawiki/core@REL1_42] exception: Convert E_STRICT errors to E_USER_NOTICE

https://gerrit.wikimedia.org/r/1108102

Change #1108101 merged by jenkins-bot:

[mediawiki/core@REL1_43] exception: Convert E_STRICT errors to E_USER_NOTICE

https://gerrit.wikimedia.org/r/1108101

Change #1112858 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/core@master] MWExceptionHandler: Add error suppression to constant( 'E_STRICT' )

https://gerrit.wikimedia.org/r/1112858

Change #1112858 merged by jenkins-bot:

[mediawiki/core@master] MWExceptionHandler: Add error suppression to constant( 'E_STRICT' )

https://gerrit.wikimedia.org/r/1112858

Change #1113220 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/core@REL1_43] MWExceptionHandler: Add error suppression to constant( 'E_STRICT' )

https://gerrit.wikimedia.org/r/1113220

Change #1113221 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/core@REL1_42] MWExceptionHandler: Add error suppression to constant( 'E_STRICT' )

https://gerrit.wikimedia.org/r/1113221

Change #1113221 merged by jenkins-bot:

[mediawiki/core@REL1_42] MWExceptionHandler: Add error suppression to constant( 'E_STRICT' )

https://gerrit.wikimedia.org/r/1113221

Change #1113220 merged by jenkins-bot:

[mediawiki/core@REL1_43] MWExceptionHandler: Add error suppression to constant( 'E_STRICT' )

https://gerrit.wikimedia.org/r/1113220

Krinkle claimed this task.