View Issue Details

IDProjectCategoryView StatusLast Update
0020318phpList 3 applicationphpListpublic15-02-21 11:47
Reporterdoc75 Assigned To 
PrioritynormalSeverityminorReproducibilityhave not tried
Status resolvedResolutionfixed 
Product Version3.5.1 
Target Version3.5.9Fixed in Version3.6.1 
Summary0020318: PHP 8.0 support (PHPList 3.5.9) ?
DescriptionSorry 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 ?
TagsNo tags attached.

Relationships

related to 0020333 new PHP 8.0 - admin page blank (tested with 3.6.1) 

Activities

michiel

11-01-21 09:57

administrator   ~0063683

Interesting. I haven' t tried that yet. I see if I can find some time to look into it.

michiel

11-01-21 14:42

administrator   ~0063684

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

michiel

11-01-21 18:30

administrator   ~0063685

Ok, I rebuilt my own image with PHP8.0 and I can see the blank screen. I'll work it out.

doc75

11-01-21 20:46

reporter   ~0063686

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.

michiel

11-01-21 21:27

administrator   ~0063687

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

https://www.php.net/manual/en/function.phpversion.php

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.

michiel

11-01-21 21:30

administrator   ~0063688

@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.

duncanc

12-01-21 11:50

updater   ~0063689

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

michiel

12-01-21 17:00

administrator   ~0063690

Hmm, it looks like more things break. I just tried the CSV import and it doesn't work on PHP8

doc75

12-01-21 20:45

reporter   ~0063691

@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.

michiel

13-01-21 11:47

administrator   ~0063692

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

https://github.com/phpList/phplist-docker/blob/master/phplist/Dockerfile#L2

Yes, we can continue discussion on a Github issue. I've started this one https://github.com/phpList/phplist-docker/issues/11

michiel

05-02-21 20:51

administrator   ~0063765


I'm closing this ticket. I think I've sorted out most issues with PHP8, which was the original subject of this ticket.

I haven't gone through everything, so some may still show up, but in general it should now work fine in PHP8.

Version 3.6.1 which is due shortly should be PHP8 compatible.

And the Docker issue that spun out from here, can be handled on Github.

mariana

15-02-21 11:47

administrator   ~0063799

This was fixed with this PR https://github.com/phpList/phplist3/pull/727
Closing this issue.