PHP 7.3

Dieses Forum enthält Diskussionen zu Bugs in ConPresso 4 und deren Lösungen.
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7381
Registriert: 01.01.1970 02:00
Hat sich bedankt: 114 Mal
Danksagung erhalten: 938 Mal

PHP 7.3

Beitrag von MarkusR »

Hier möchte ich mal sammeln, welche Dinge mir auffallen, bei einem bereits auf PHP 7.2 migrierten Auftritt, nachdem auf PHP 7.3 (seit 6.12.2018) umgeschaltet wurde.

Folgende Meldung taucht bei mehreren CPO-Dateien auf
Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in _admin/modules.php on line 58
Die Meldung taucht aufgrund der für CPO typischen Kontroll- und Ablaufstrukturen immer gleich mehrfach auf.
Allerdings immer nur einmal, beim nächsten Aufruf werden keine Meldungen mehr ausgegeben.

Davon betroffen sind
_admin/modules.php
_admin/articles.php

Ich war bisher der Meinung, dass sich die Kontrollstrukturen while/continue und switch/break klar voneinander abgrenzen, aber das scheint PHP anders zu sehen, siehe der erste Hinweis auf
http://php.net/manual/de/control-structures.switch.php
Hinweis: Beachten Sie, dass im Unterschied zu einigen anderen Sprachen die continue Anweisung auch auf switch anwendbar ist und sich ähnlich wie break verhält. Wenn Sie ein switch innerhalb einer Schleife verwenden und mit dem nächsten Schleifendurchlauf beginnen wollen so müssen Sie in diesem Fall continue 2 angeben.
Es müsste also vermutlich "continue 2" benutzt werden.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
balu
ConPresso-Entwickler
Beiträge: 1748
Registriert: 01.01.1970 02:00
Hat sich bedankt: 81 Mal
Danksagung erhalten: 133 Mal

Beitrag von balu »

In dem Fall ist es egal, da hinter dem Switch keine weiteren Anweisungen in der Schleife folgen. Die Idee ist ja einfach, aus dem switch zu springen, weil z.B. eine wichtige Variable fehlt.

"break" ist dann vermutlich klarer, als "continue 2".
Bartels.Schöne
ConPresso Support & Development
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7381
Registriert: 01.01.1970 02:00
Hat sich bedankt: 114 Mal
Danksagung erhalten: 938 Mal

Beitrag von MarkusR »

Du meinst, statt continue (oder eben continue 2) sollte da einfach nur break rein?.

Funktionieren tut es ja, nur die Meldung, da gleich in gehäufter Form, nervt doch etwas...
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von MarkusR am 30.12.2018 14:13, insgesamt 1-mal geändert.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
balu
ConPresso-Entwickler
Beiträge: 1748
Registriert: 01.01.1970 02:00
Hat sich bedankt: 81 Mal
Danksagung erhalten: 133 Mal

Beitrag von balu »

Ich meinte, die Lösung ist das verwendete "continue" in ein "break" zu ändern und nicht wie von PHP vorgeschlagen in "continue 2".
Bartels.Schöne
ConPresso Support & Development
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7381
Registriert: 01.01.1970 02:00
Hat sich bedankt: 114 Mal
Danksagung erhalten: 938 Mal

Beitrag von MarkusR »

*lach* ja, ich hatte es inzwischen verstanden und mein Post korrigiert.
Du warst aber eine Minute schneller... :wall:

Also break statt continue 2... :wink:
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7381
Registriert: 01.01.1970 02:00
Hat sich bedankt: 114 Mal
Danksagung erhalten: 938 Mal

Beitrag von MarkusR »

Noch eine notwendige Anpassung:

in _admin/templates.php

Zeile 331

Code: Alles auswählen

print("placeholder.push('".$v[type]."', '".addslashes($v[name])."');\n");
muss werden zu

Code: Alles auswählen

print("placeholder.push('".$v['type']."', '".addslashes($v['name'])."');\n");
also mit ' um die Keys

Ansonsten werden im Template Editor vorhandene Platzhalter nicht aufgelistet. Das fällt bei bereits laufenden Auftritten meist nicht auf, da man Templates (vorerst) ja nicht mehr bearbeiten muss.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7381
Registriert: 01.01.1970 02:00
Hat sich bedankt: 114 Mal
Danksagung erhalten: 938 Mal

Beitrag von MarkusR »

Und der Vollständigkeit halber natürlich auch diese Anpassung:
viewtopic.php?p=29261#29261
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle