Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Issue with TinyMCE Moxiemanager on PHP8

We are using Moxiemanager with TinyMCE. But after upgrading on PHP8 we are facing error. We are getting the following error -

Server returned an invalid response
Fatal error: During inheritance of IteratorAggregate: Uncaught MOXMAN_Exception: Return type of MOXMAN_Vfs_FileList::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /sites/ssc.lara/ssc/public/assets/libs/tinymce/plugins/moxiemanager/classes/Vfs/FileList.php:38 Stack trace: #0 /sites/ssc.lara/ssc/public/assets/libs/tinymce/plugins/moxiemanager/classes/Vfs/FileList.php(13): MOXMAN_Exception::throwRuntimeError() #1 /sites/ssc.lara/ssc/public/assets/libs/tinymce/plugins/moxiemanager/classes/AutoLoader.php(77): require('/sites/ssc.lara...') #2 /sites/ssc.lara/ssc/public/assets/libs/tinymce/plugins/moxiemanager/classes/Vfs/Local/File.php(277): MOXMAN_AutoLoader::autoload() #3 /sites/ssc.lara/ssc/public/assets/libs/tinymce/plugins/moxiemanager/classes/Commands/ListFilesCommand.php(148): MOXMAN_Vfs_Local_File->listFilesFiltered() #4 /sites/ssc.lara/ssc/public/assets/libs/tinymce/plugins/moxiemanager/classes/CommandCollection.php(39): MOXMAN_Commands_ListFilesCommand->execute() #5 /sites/ssc.lara/ssc/public/assets/libs/tinymce/plugins/moxiemanager/classes/CorePlugin.php(69): MOXMAN_CommandCollection->execute() #6 /sites/ssc.lara/ssc/public/assets/libs/tinymce/plugins/moxiemanager/classes/Handlers/JsonRpcHandler.php(74): MOXMAN_CorePlugin->execute() #7 /sites/ssc.lara/ssc/public/assets/libs/tinymce/plugins/moxiemanager/classes/CorePlugin.php(82): MOXMAN_Handlers_JsonRpcHandler->processRequest() #8 /sites/ssc.lara/ssc/public/assets/libs/tinymce/plugins/moxiemanager/api.php(18): MOXMAN_CorePlugin->processRequest() #9 {main} in /sites/ssc.lara/ssc/public/assets/libs/tinymce/plugins/moxiemanager/classes/Vfs/FileList.php on line 13
Ok

It seems to be some issue with PHP's Iterator implementation. Can anyone help?

like image 491
Sougata Bose Avatar asked Jun 06 '26 08:06

Sougata Bose


1 Answers

At tinymce\plugins\moxiemanager\classes\Util\NameValueCollection.php, change:

public function getIterator() {
    return new ArrayIterator($this->items);
}

to:

public function getIterator(): \Traversable {
    return new \ArrayIterator($this->items);
}

And at tinymce/plugins/moxiemanager/classes/Vfs/FileList.php, change:

public function getIterator() {
    return new ArrayIterator($this->getFiles());
}

to:

public function getIterator(): \Traversable {
    return new \ArrayIterator($this->items);
}

After these changes my Moxiemanager works fine (ver 2.1.8-28, PHP 8.1.8).

like image 68
noobeveryday Avatar answered Jun 07 '26 22:06

noobeveryday



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!