ProfessionalWiki / chameleon

Provides a highly flexible and customizable skin using Bootstrap 4
https://www.mediawiki.org/wiki/Skin:Chameleon
Other
114 stars 62 forks source link

Possible PHP8.1 upgrade issue #309

Closed Mark-2022 closed 2 years ago

Mark-2022 commented 2 years ago

Hi,

My website it running PHP8.1 and I am getting the following error on my wiki when I try to use chameleon.

[YgOi2TpfM9_9fkdyS8QEwwACRQ0] /yellowbook/index.php/Main_Page Error: Skins\Chameleon\Hooks\SetupAfterCache::__construct(): Argument #2 ($configuration) cannot be passed by reference Backtrace: from /home/h04a334yj6yy/public_html/yellowbook/skins/chameleon/src/Chameleon.php(75)
#0 /home/h04a334yj6yy/public_html/yellowbook/includes/HookContainer/HookContainer.php(338): Skins\Chameleon\Chameleon::Skins\Chameleon{closure}()
#1 /home/h04a334yj6yy/public_html/yellowbook/includes/HookContainer/HookContainer.php(137): MediaWiki\HookContainer\HookContainer->callLegacyHook()
#2 /home/h04a334yj6yy/public_html/yellowbook/includes/HookContainer/HookRunner.php(3337): MediaWiki\HookContainer\HookContainer->run()
#3 /home/h04a334yj6yy/public_html/yellowbook/includes/Setup.php(732): MediaWiki\HookContainer\HookRunner->onSetupAfterCache()
#4 /home/h04a334yj6yy/public_html/yellowbook/includes/WebStart.php(90): require_once(string)
#5 /home/h04a334yj6yy/public_html/yellowbook/index.php(44): require(string)
#6 {main}

Any assistance greatly appreciated. The wiki is working fine with the timeless skin.

JeroenDeDauw commented 2 years ago

This is due to https://wiki.php.net/rfc/restrict_globals_usage

image

Mark-2022 commented 2 years ago

Hi, thanks for the insight.

Do you know if there is an update to chamelleon skin to overcome this?

JeroenDeDauw commented 2 years ago

No, we need to fix this first.

What version of MediaWiki are you using anyway? Last time I tried 1.37 on PHP 8.1 it failed miserably. 1.37 isn't even officially compatible with PHP 8.0 yet, despite it mostly working fine.

Mark-2022 commented 2 years ago

1.37 on PHP 8.1 works fine for me except when I enable chameleon skin. I have reverted my php version to 8.0 for now so that I can continue to use the chameleon skin.

JeroenDeDauw commented 2 years ago

@Mark-2022 probably fixed with https://github.com/ProfessionalWiki/chameleon/pull/311.

Would be great if you could give that a spin. You can just copy the contents of this file over the one you currently have to see if the change gets rid of the issue or not.

Mark-2022 commented 2 years ago

@JeroenDeDauw.

I've given that a go, copying the SetupAfterCache.php file across and it all now seems to work fine. Thanks for the fix.