From 0d742832f4a305165d2aac992189a3ab774d4a66 Mon Sep 17 00:00:00 2001 From: rlot Date: Tue, 20 Dec 2016 16:49:15 +0100 Subject: [PATCH] upload: Avoid &$this in hooks &$this triggers warnings in PHP 7.1. Simply renaming the variable before passing it by reference avoids the warning, without breaking backwards compatibility. Bug: T153505 Change-Id: I78ea04a01ecce82294837e92c2a05b00ffb6e0f6 --- includes/specials/SpecialUpload.php | 13 +++++++++---- includes/upload/UploadBase.php | 4 +++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/includes/specials/SpecialUpload.php b/includes/specials/SpecialUpload.php index f7e46cb617..aabd450894 100644 --- a/includes/specials/SpecialUpload.php +++ b/includes/specials/SpecialUpload.php @@ -209,7 +209,9 @@ class SpecialUpload extends SpecialPage { $this->processUpload(); } else { # Backwards compatibility hook - if ( !Hooks::run( 'UploadForm:initial', [ &$this ] ) ) { + // Avoid PHP 7.1 warning of passing $this by reference + $upload = $this; + if ( !Hooks::run( 'UploadForm:initial', [ &$upload ] ) ) { wfDebug( "Hook 'UploadForm:initial' broke output of the upload form\n" ); return; @@ -483,8 +485,9 @@ class SpecialUpload extends SpecialPage { return; } - - if ( !Hooks::run( 'UploadForm:BeforeProcessing', [ &$this ] ) ) { + // Avoid PHP 7.1 warning of passing $this by reference + $upload = $this; + if ( !Hooks::run( 'UploadForm:BeforeProcessing', [ &$upload ] ) ) { wfDebug( "Hook 'UploadForm:BeforeProcessing' broke processing the file.\n" ); // This code path is deprecated. If you want to break upload processing // do so by hooking into the appropriate hooks in UploadBase::verifyUpload @@ -570,7 +573,9 @@ class SpecialUpload extends SpecialPage { // Success, redirect to description page $this->mUploadSuccessful = true; - Hooks::run( 'SpecialUploadComplete', [ &$this ] ); + // Avoid PHP 7.1 warning of passing $this by reference + $upload = $this; + Hooks::run( 'SpecialUploadComplete', [ &$upload ] ); $this->getOutput()->redirect( $this->mLocalFile->getTitle()->getFullURL() ); } diff --git a/includes/upload/UploadBase.php b/includes/upload/UploadBase.php index ea6ef30bdd..96f8638557 100644 --- a/includes/upload/UploadBase.php +++ b/includes/upload/UploadBase.php @@ -775,7 +775,9 @@ abstract class UploadBase { User::IGNORE_USER_RIGHTS ); } - Hooks::run( 'UploadComplete', [ &$this ] ); + // Avoid PHP 7.1 warning of passing $this by reference + $uploadBase = $this; + Hooks::run( 'UploadComplete', [ &$uploadBase ] ); $this->postProcessUpload(); } -- 2.20.1