I am upgrading the Mediawiki installation from 1.44.2 to 1.45.1.
Everything is OK. Until I try the update script. I forgot to record the error. So I found one on the Web. As below
15:47:42 [250e8a55b4df40e8c3d5f0dd] [no req] Error: Class "Wikimedia\Parsoid\DOM\HTMLDocument" not found
15:47:42 Backtrace:
15:47:42 from /workspace/src/vendor/wikimedia/parsoid/src/Utils/DOMCompat.php(112)
15:47:42 #0 /workspace/src/includes/Parser/ContentHolder.php(96): Wikimedia\Parsoid\Utils\DOMCompat::newDocument()
15:47:42 #1 /workspace/src/includes/Parser/ParserOutput.php(368): MediaWiki\Parser\ContentHolder::createEmpty()
15:47:42 #2 /workspace/src/includes/Output/OutputPage.php(439): MediaWiki\Parser\ParserOutput->__construct()
15:47:42 #3 /workspace/src/includes/Context/RequestContext.php(331): MediaWiki\Output\OutputPage->__construct()
15:47:42 #4 /workspace/src/includes/Setup.php(571): MediaWiki\Context\RequestContext->getOutput()
15:47:42 #5 /workspace/src/maintenance/doMaintenance.php(71): require_once(string)
15:47:42 #6 /workspace/src/maintenance/install.php(278): require_once(string)
15:47:42 #7 {main}
15:47:42 <<< Finish: Install MediaWiki, db=<MySQL /workspace/db/quibble-mysql-cd7j8qln/socket>, in 0.191 s
It is a problem between the php8.4 and MediaWiki.
So it is just a workaround to make the upgrade continue and finish.
The problem is that Wikimedia\Parsoid\DOM\HTMLDocument isn't properly autoloaded. I solved it temporarily like this:
require_once('vendor/wikimedia/parsoid/src/DOM/HTMLDocument.php');
Insert this line right before $doc = HTMLDocument::createEmpty( "UTF-8" ); in vendor/wikimedia/parsoid/src/Utils/DOMCompat.php.
Credit to the original post at https://phabricator.wikimedia.org/T409283

