Welche Codeänderungen sind erforderlich, um Joomla 3.5-Erweiterungen PHP7-kompatibel zu machen?

9

(Bitte ertrage es mit mir, es tut mir leid, aber ich kann es einfach nicht so schnell fragen.)

Wir warten alle kaum auf die stabile Version von Joomla 3.5.0, nicht wahr?

RC3 RC4 wurde heute veröffentlicht und es ist nur eine Frage von Tagen, bis sie endgültig veröffentlicht wird ( Joomla 3.5.0 Stable wurde erst am Montag, den 21. März 2016 veröffentlicht ), nach mehr als einem Jahr und zahlreichen Zieländerungen und ETA-Verschiebungen.

Das größte Merkmal neben allen anderen bemerkenswerten Verbesserungen wird definitiv die Fähigkeit sein, auf dem neuesten PHP7 zu laufen, was zu einer fast 50% schnelleren Ausführung und einer fast vierfachen Verringerung des Speicherverbrauchs ( Quelle ) führt.

Aufgrund innerer Änderungen in PHP7 (Einführung von Typhinweisen und den jetzt reservierten Wörtern "int", "string" und "float") führt dies bei zahlreichen Erweiterungen zu einer Unterbrechung der Abwärtskompatibilität, obwohl dies der Joomla 3.5.0-Kern selbst tut vollständig kompatibel mit PHP7 sein.
( Quelle: Abwärtskompatibilitätspause von RC4 Release News :)

Wir haben ein Versprechen zur Abwärtskompatibilität, um sicherzustellen, dass der Code nicht plötzlich kaputt geht. Es gibt jedoch Umstände, die uns zwingen können, dieses Versprechen nicht mehr einzuhalten. In Joomla 3.5 ist dies der Fall. Aufgrund von Änderungen in PHP 7 mussten wir die String-Klasse in StringHelper umbenennen, sonst Joomla! kann nicht auf PHP 7 ausgeführt werden. Dies ist eine sehr geringfügige Änderung und wir erwarten keine Probleme davon. Für Interessenten können Sie mehr darüber unter Update to String-Paket 1.3 lesen .

Ich habe ihre Entwicklung aufmerksam verfolgt und J! 3.5.0 auf SiteGrounds PHP7 seit ihren ersten Betas bis zum neuesten RC4 getestet, und ich kann bestätigen, dass Verbesserungen spürbar und großartig sind.

ABER ... Im Moment bin ich sehr besorgt. Wie schnell werden alle Erweiterungen vollständig aktualisiert, um PHP7 zu unterstützen? Es besteht eine große Chance, dass es Monate dauern wird, bis wir unsere Websites auf neuem PHP frei ausführen können, das so konfiguriert ist, wie es jetzt in Version 3.4.8 ist.

SO ... Ich denke ernsthaft darüber nach, einige meiner bevorzugten Admin-Erweiterungen manuell zu aktualisieren, um PHP7 zu unterstützen , damit ich sie unter neuer Version 3.5 weiter verwenden kann. Für diejenigen, die beliebt sind und aktiv unterstützt werden (wie Akeeba, JCE usw.), werde ich auf Entwickler-Updates warten, in der Hoffnung, dass sie ziemlich schnell kommen. Aber für diejenigen, die nicht mehr aktiv unterstützt werden (es gibt viele von ihnen, die ich seit Ewigkeiten benutze, bitte fragen Sie mich nur nicht nach Details), muss ich sie selbst aktualisieren.

UND ... Meine Frage ist schließlich: Wissen Sie zufällig, welche Codeänderungen erforderlich sind, um eine Erweiterung PHP7-kompatibel zu machen?
Ich meine, neben Änderungen, die das Joomla-Team selbst für das Update auf String-Paket 1.3 vornehmen musste ...

Mikan
quelle
1
Ich denke, der größte Teil dieses Beitrags könnte bearbeitet / entfernt werden. Das Hauptaugenmerk der Frage liegt auf "Welche Änderungen im Code sind erforderlich, um Joomla 3.5-Erweiterungen PHP7-kompatibel zu machen?" Obwohl ich denke, dass die enthaltenen Verweise auf die bekannten Änderungen wichtig sind.
TryHarder
1
@moomoochoo - Danke für den Titelwechsel Mann ... Ich denke auch, dass Referenzen für ein breiteres Publikum wichtig sind ...
Mikan
1
Wenn eine der von Ihnen verwendeten Erweiterungen den ioncube loader verwendet, müssen Sie möglicherweise eine Weile warten. forum.ioncube.com/… In dieser Situation würde das Ändern der Erweiterung nicht helfen.
TryHarder
@oooooo - Vielen Dank, dass Sie darauf hingewiesen haben. Es ist gut zu wissen, dass ioncube mit dem neuesten PHP immer noch nicht kompatibel ist, obwohl mein Hauptaugenmerk auf all den kleinen Helfer-Erweiterungen liegt, ohne die wir erfahrene Administratoren unsere Toolbox nicht vorstellen können und die wir kaum nutzen können dieses Maß an Lizenzschutz.
Mikan
1
Obwohl es Ihren Fokus möglicherweise nicht abdeckt, hoffe ich, dass es für andere relevant und nützlich ist :)
TryHarder

Antworten:

5

Ok, das erste ist das erste. Joomla 3.5.0 Stable wird morgen nächsten Montag veröffentlicht :)

Ich mache einen Schritt zurück und erstelle zuerst ein Backup Ihrer Site und installiere es auf einer Subdomain oder Ihrem lokalen Host, auf dem PHP 7.0.4 ausgeführt wird.

Sobald Sie fertig sind, testen Sie es gründlich.

Was die Erweiterungen betrifft, unterstützt I Nicolas von Akeeba bereits PHP 7, und andere beliebte Erweiterungen werden es höchstwahrscheinlich bereits unterstützen.

Ich würde es unterlassen, selbst grundlegende Änderungen vorzunehmen, und warten, bis der Entwickler aktualisiert wird, sobald er kann. Sie kennen den "Core Hack" -Bohrer ... es ist ein "No Go" -Bereich.

Informationen zu Änderungen der Abwärtsinkompatibilität finden Sie auf der offiziellen PHP-Website:

http://php.net/manual/en/migration70.incompatible.php

Warten Sie insgesamt vielleicht ein paar Monate, bis PHP 7 etwas stabiler ist. Es ist noch relativ neu und es wird definitiv einige große Fehler geben.

Hoffe das hilft

Lodder
quelle
Sicher hilft es ... Danke Mann ... Ich kann es kaum erwarten bis morgen ;-)
Mikan
Es scheint, dass sie Stable wieder verschoben haben :-( twitter.com/viktorvogel/statuses/710007837850791937 , aber sie haben stattdessen RC4 heute veröffentlicht ... Oh, na ja ...
Mikan
2
@ MirkoMikan - Stall ist jetzt nächsten Montag
Lodder
2

Dies ist KEINE Antwort auf meine Frage. Ich wollte nur einen Link teilen, den ich gerade gefunden habe und der beim Upgrade unseres Joomlas auf 3.5 hilfreich sein könnte:

Es gibt eine Google Doc " Liste der Joomla! -Erweiterungen, die Joomla! 3.5 und PHP 7 unterstützen ", die öffentlich verfügbar ist und von der Community gepflegt wird (wir sprechen schließlich über Joomla :-)).

Ich weiß, ich hätte es als Kommentar und nicht als Antwort setzen sollen, aber ich denke, es ist auf diese Weise sichtbarer.

Mikan
quelle