Piwigo und PHP7, Teil 2 – der RSS Feed

Der RSS Feed von Piwigo ist in Version 2.8.6 immer noch nicht PHP7 kompatibel. Wir müssen also erneut Hand anlegen, wie schon im Artikel Piwigo Umstellung auf PHP7. Wie man das selbst ändern kann, steht in diesem Artikel!

Wie äußert sich der Fehler?

Beim Abonieren des Fehlers wird ein malformed XML Fehler angezeigt. Eine Recherche im Quelltext des Feeds ergibt

PHP Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; FeedHtmlField has a deprecated constructor in include/feedcreator.class.php on line 275
PHP Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; FeedDate has a deprecated constructor in include/feedcreator.class.php on line 703
PHP Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; RSSCreator091 has a deprecated constructor in include/feedcreator.class.php on line 879
PHP Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; RSSCreator20 has a deprecated constructor in include/feedcreator.class.php on line 1017
PHP Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; PIECreator01 has a deprecated constructor in include/feedcreator.class.php on line 1034
PHP Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; AtomCreator03 has a deprecated constructor in include/feedcreator.class.php on line 1092
PHP Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; MBOXCreator has a deprecated constructor in include/feedcreator.class.php on line 1160
PHP Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; OPMLCreator has a deprecated constructor in include/feedcreator.class.php on line 1247

Auch hier ist es ein simpler Fehler. Wir müssen einfach die ganzen nun falschen Constructor-Aufrufe so umbauen, dass etwas PHP7-Kompatibles entsteht.

Die Lösung

Wir machen eine Kopie der Datei include/feedcreator.class.php! So haben wir im Fall der Fälle ein Backup. Wir öffnen die feedcreator.class.php in einem Editor wie z.B. Notepad++ und suchen uns den Anfang der einzelnen Klassen laut Fehlerbeschreibung. Wir ändern in der angegebenen Zeile einfach wie folgt ab:

class FeedHtmlField {
...
Zeile 275 function __construct($parFieldContent) {
class FeedDate {
...
Zeile 703 function __construct($dateString="") {
class RSSCreator091 extends FeedCreator {
...
Zeile 879 function __construct() {
class RSSCreator20 extends RSSCreator091 {
...
Zeile 1017 function __construct() {
class PIECreator01 extends FeedCreator {
...
Zeile 1034 function __construct() {
class AtomCreator03 extends FeedCreator {
...
Zeile 1092 function __construct() {
class MBOXCreator extends FeedCreator {
...
Zeile 1160 function __construct() {
class OPMLCreator extends FeedCreator {
...
Zeile 1247 function __construct() {

Danach wird die Datei einfach abgespeichert. Wir rufen den Feed auf, und wenn wir alles richtig gemacht haben, wird der Feed ohne Fehler dargestellt.

 

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.