Wikimedia

Remove use of &$this in hooks as it triggers warnings in PHP 7.1 (#1)

Code like Hooks::run( 'WantedPages::getQueryInfo', [ &$this, &$query ] ); will trigger warnings in PHP 7.1. Ideally the solution would be to remove &, which hasn't been needed since PHP 4, however that breaks backwards-compatibility.

Instead, we can rename $this to a different variable, and then pass it by reference. Example:

// Avoid PHP 7.1 warning of passing $this by reference
$editPage = $this;
Hooks::run( 'EditPage::showEditForm:initial', [ &$editPage, &$out ] );

See https://bugs.php.net/bug.php?id=73751 / https://wiki.php.net/rfc/this_var

Example commit: https://gerrit.wikimedia.org/r/#/c/328387/

More information:

You are expected to provide patches in Wikimedia Gerrit (one patch for each repository). See https://www.mediawiki.org/wiki/Gerrit/Tutorial for how to set up Git and Gerrit.

The repositories / files to fix for this task are:

  • extensions/GlobalContribs/SpecialGlobalContributions.php: Hooks::run( 'ContribsPager::getQueryInfo', array( &$this, &$queryInfo ) );
  • extensions/SocialProfile/UserProfile/UserProfilePage.php: if ( !Hooks::run( 'UserProfileBeginLeft', array( &$this ) ) ) {
  • extensions/SocialProfile/UserProfile/UserProfilePage.php (3 more instances)

Task tags

  • php
  • cleanup

Students who completed this task

Rafid Aslam

Task type

  • code Code
  • done_all Quality Assurance
close

2017