It looks like the behavior of parse_url changed slightly with PHP 8.
Taking var_dump(parse_url('http://www.usemod.com/cgi-bin/mb.pl?')); as an example:
- PHP 7.3:
array(3) {
'scheme' =>
string(4) "http"
'host' =>
string(14) "www.usemod.com"
'path' =>
string(14) "/cgi-bin/mb.pl"
}PHP 8:
array(4) {
["scheme"]=>
string(4) "http"
["host"]=>
string(14) "www.usemod.com"
["path"]=>
string(14) "/cgi-bin/mb.pl"
["query"]=>
string(0) ""
}Note how PHP 8 returns an empty query item. This causes the parser test for T4372 to break:
Running test Inline interwiki link with empty title (T4372)... FAILED! /Users/mateszabo/Wikia/mwdev/mediawiki/tests/parser/parserTests.txt:9205 --- /private/var/folders/d6/jvhxxmt929958g4m4h8j2byw0000gn/T/mwParser-expectedXggzpO 2020-11-26 22:39:46.000000000 +0100 +++ /private/var/folders/d6/jvhxxmt929958g4m4h8j2byw0000gn/T/mwParser-actualtXLlOI 2020-11-26 22:39:46.000000000 +0100 @@ -1,2 +1,2 @@ -<p><a href="http://www.usemod.com/cgi-bin/mb.pl" class="extiw" title="meatball:">MeatBall:</a> +<p><a href="http://www.usemod.com/cgi-bin/mb.pl?" class="extiw" title="meatball:">MeatBall:</a> </p>