View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0020318||phpList 3 application||phpList||public||10-01-21 18:18||13-01-21 11:47|
|Priority||normal||Severity||minor||Reproducibility||have not tried|
|Summary||0020318: PHP 8.0 support (PHPList 3.5.9) ?|
|Description||Sorry if the bug report is not fully correct, this is my first contribution here.|
I am running a PHPList instance on docker without any problem for months under PHP 7.3.
I tried to migrate to PHP 7.4 without any problem.
But when trying with PHP 8.0 all the pages (main page or admin page) are blank.
I activated the PHP errors but nothing is shown.
It might be my installation, but coudl anyone confirm if PHPList 3.5.9 support PHP 8.0 or not ?
|Tags||No tags attached.|
||Interesting. I haven' t tried that yet. I see if I can find some time to look into it.|
which docker image are you using? When I try eg php:8.0-apache and I check the image, the PHP modules still reference PHP7.3
So, I don' t think there's an image yet with the correct requirements for phpList, like mysqli and imap.
I guess we may need to wait a little before that's ready
||Ok, I rebuilt my own image with PHP8.0 and I can see the blank screen. I'll work it out.|
||Great that you can reproduce... I am using an alpine based image I made. In case you want me to test once you have found something, let me know.|
Ok, this will fix it: https://github.com/phpList/phplist3/pull/727
@duncanc the XML parser has changed in PHP8, that may affect the RSS plugin
I had to disable the RSS feed fetching from the community site for now
xml_parser_create() and xml_parser_create_ns() will now return an XMLParser object rather than a resource. The xml_parser_free() function no longer has an effect, instead the XMLParser instance is automatically destroyed if it is no longer referenced.
@doc75 that sounds great, an alpine based image. If you can create a PR for https://github.com/phpList/phplist-docker that would be brilliant.
I haven't had time yet to get it working from alpine, but that would be great to add.
Thanks for the notification. The RSS Feed plugin uses a library which has a different approach. It uses the DOM interface which doesn't appear to be affected by this change.
Looking at https://php.watch/articles/resource-object#resource-php80 it appears that the change from resource to object should be fairly transparent. I think the problem with onyx-rss might simply be that it checks that the function xml_parser_create() returns a resource which is no longer the case.
Searching for "is_resource" within the phplist code tree throws a few other occurrences that may be affected
the phpmailer SMTP socket connection
the PEAR HTTP Request2 class that is used as a fallback when curl is not available
the KCfinder image browser within the ckeditor plugin
||Hmm, it looks like more things break. I just tried the CSV import and it doesn't work on PHP8|
||@michiel, I checked how you are doing the images in phplist-docker and indeed they seems to be all in one. On my side the alpine image i designed is a standalone php-fpm one which require containers for mariadb and an NGINX reverse proxy (or Apache) as well as a mail server somewhere (managed separately in my case). Not sure if it fits with your way of working. If you are interested let me know and we can continue the discussion on a github issue to see how to move forward.|
Yes, that is interesting. I do split out the images into a DB one and a mail one. I use docker-compose to link them all together, but the phpList image is only phpList. However, I use debian as the base image to work from an not alpine, so starting from alpine would help reduce the size of the image
Yes, we can continue discussion on a Github issue. I've started this one https://github.com/phpList/phplist-docker/issues/11