Frage

PHP 7 erreicht den Beta-Status und es werden derzeit zahlreiche Tests durchgeführt.Angesichts der Tatsache, dass Magento im letzten Jahr von „läuft nur auf PHP 5.3“ zu „voll kompatibel mit PHP 5.6“ aufgeholt hat, würde ich gerne wissen, wie sehr sie über die PHP 7-Kompatibilität für Magento 1.x und Magento 2 nachdenken.

ich fand dieser Beitrag von Anna Filina Dort fand sie ein Problem in Magento 1.9.1 (immer noch unverändert in 1.9.2), aber angesichts der Tatsache, dass Magento 1 keine Unit-Tests hat, glaube ich nicht, dass dies das einzige Problem war.

Die Frage ist also:Wird die PHP 7-Kompatibilität für Magento 1 gewährleistet?Und da Magento 2 wahrscheinlich bereits auf PHP 7 getestet wurde (Dank automatisierter Tests!), gibt es bekannte Probleme?

War es hilfreich?

Lösung

Magento kündigte am 20. Januar 2016 offiziell an, dass CE und EE 2.0.1 PHP 7.0.2 offiziell unterstützt.

Magento Enterprise Edition und Community Edition 2.0.1 sind jetzt Verfügbar und verfügen über wichtige Sicherheit und funktionale Updates, einschließlich der offiziellen Unterstützung für PHP7.0.2.

link: https://magento.com/blog/technical/new-Magento-20-Ressourcen-and-Support-PHP7

Andere Tipps

Wenn Sie die neueste Version, M CE 1.9.2.2 verwenden, gibt es eine Erweiterung, die es auf die vollständige PHP-Kompatibilität bringt: https://github.com/inchoo/inchoo_php7 .(Haftungsausschluss: Ich bin der Autor, obwohl es viel Hilfe von der Gemeinde gibt.)

Es ist auch über den Komponisten von http://packages.firegento.com/ installierbar.

Alle hier genannten Inkompatibilitäten sind festgelegt.Wir glauben, dass es noch ein paar Randkoffer geben kann, aber nichts zeigt an.Testen, Ausgabeberichte und Pull-Anfragen sind willkommen.

Keine Idee von PHP7, aber ich würde vermuten, dass die meisten Sachen noch in PHP7 gültig sind. Weitere Informationen finden Sie im Blog von Matthias Geniar

    .
  • ext / mysql: Obwohl es sich um eine sehr alte MySQL-Erweiterung handelt, würde ich rechnen, dass es immer noch sehr weit verbreitet ist, aber es ist Zeit, dass sich jeder an PDO_MYSQL bewegt.
  • set_magic_quotes_runtime und magic_quotes_runtime: Es scheint, dass ich diese Abschreibungen seit ... für immer gesehen habe?
  • iconv.input_encoding, iconv.output_encoding: Bisher habe ich noch nie eine Verwendung für diese ...
  • # style Kommentare in Ini-Dateien: Hurra für Konsistenz, ich bin immer bevorzugt; (Semicolon) Kommentare in .ini-Dateien!
  • preg_replace() eval modifier: Hurra für sicherheitsgesinnte sysadmins!

Ich denke, das einzige, was wir in Magento haben könnten, ist preg_replace()-Eval-Modifikator , aber hoffentlich nicht.

daneben lieferte Magento 1.9.2 mit einem aktualisierten TAF, finden Sie in Dev. Damit sollten Sie in der Lage sein, einen Bündel Frontend-Tests auf PHP7 auszuführen und das Protokoll anschließend zu untersuchen

Kein Kommentar zu Magento 1, aber Magento 2 hatte einige Probleme mit Klassennamen wie "String".Es dauerte nicht lange, um sie zu beheben, aber es hat nicht aus der Box gearbeitet.Ich erwarte, dass Magento 2 behoben wird, aber es ist jedoch aufgrund anderer Prioritäten zuerst nicht behoben.

Es ist fast fertig.Ich habe versucht, ein sauberes Magento 1.9.2.1 mit PHP 7 RC1 auszuführen, was zu einem sofortigen Absturz (schwerwiegender Fehler) von Magento führte.Nachdem dieses Problem behoben wurde, schien alles zu funktionieren, außer dem Backend, bei dem ich mich nicht anmelden konnte.Später stellte sich heraus, dass es sich um ein sitzungsbezogenes Problem handelte, das behoben werden konnte.

Knapp:

  1. Der schwerwiegende Fehler kann durch Überschreiben behoben werden Mage_Core_Model_Layout dann ändern Sie Zeile 555 von:
    $out .= $this->getBlock($callback[0])->$callback[1]();
    hinein
    $out .= $this->getBlock($callback[0])->{$callback[1]}();

  2. Das Sitzungsproblem kann vorübergehend durch Überschreiben behoben werden Mage_Core_Model_Session_Abstract_Varien und das Umschreiben getData, setData, unsetData, addFullNames Methoden, also überall wo $this->_data verwendet wurde, wird es durch ersetzt $_SESSION.

Wenn sich jemand für die Lösung interessiert, kann sie gefunden werden Hier.

Magento2 ist bereit für PHP 7. Die Anpassung des Codes an PHP7 wurde durchgeführt, und alle Änderungen sind in Entwicklungszweig verfügbar.Siehe Thema auf Github

auch Unterstützung von PHP 7 in Magento1 erfordern rückwärts inkompatible Veränderungen, und ich denke, wird offiziell nicht unterstützt.

Es gibt ein Problem, wie Magento Auftragsauftragsgrade berechnet und die Rabatte anwenden.Dies hält auch die PayPal Express-Kasse, da die Linienelemente nicht den Grand Summe mit dem Rabatt hinzufügen.

0

Versuchen Sie es mit: -

generasacodicetagpre.

Dies ist meine Forschung, die ich mit Ihnen über die Inkompatibilitäten von Magento PHP7 teilen möchte. Derzeit habe ich einige Orte gefunden, an denen der Code aufgrund einer einheitlichen variablen Syntax fehlschlägt.

Datei: App / Code / Core / Mage / ImportExport / Modell / Export / Entität / Produkt / Typ / Taste / Abstract.php

-Methode: überschreibenTRibute

generasacodicetagpre.

Datei: App / Code / Core / Mage / ImportExport / Modell / Export / Entity / customer.php

-Methode: FilterattributeCollection

generasacodicetagpre.

Datei: App / Code / Core / Mage / ImportExport / Modell / Import / Uploader.php

-Methode: _ValidateFile

generasacodicetagpre.

Datei: App / Code / Kern / Magier / Katalog / Modell / Produkt / Link / API / V2.php

-Methode: Aord

generasacodicetagpre.

Datei: App / Code / Kern / Magier / Katalog / Modell / Produkt / Link / API / V2.php

-Methode: update

generasacodicetagpre.

Datei: lib / varien / file / uploader.php

-Methode: _ValidateFile

generasacodicetagpre.

Datei: App / Code / Kern / Magier / Kern / Modell / Layout.php

-Methode: Getoutput

generasacodicetagpre.

Zusätzlich zu den anderen Antworten im Zusammenhang mit Magento 1:

Eine PHP 7-Inkompatibilität in Zend_XmlRpc_Server wurde in Zend Framework 1.12.12 behoben

Alle Versionen vor CE 1.9.2.2 / EE 1.14.2.2 verwenden eine ältere Version von Zend Framework, daher kann es zu Problemen kommen, wenn Sie die XML-RPC-API von Magento verwenden.

Ich verwende Magento 2 CE-Version 2.1.4 & funktioniert gut.

magento \ app \ bootstrap.php

generasacodicetagpre.

Kurze Antwort ist nein, das tut es nicht.Magento CE 1.9.2.4 unterstützt nur PHP 5.4 und 5.5 offiziell.Während PHP 5.6 nicht gut läuft, sättigt es Protokolldateien mit Multitudes von Warnmeldungen.

lange Antwort ist, dass es relativ einfach ist, ihn zu ändern, um den Support PHP7 auszuführen.Viele Erweiterungen sind jedoch immer noch nicht php7 kompatibel, so dass Sie weitgehend alleine sind.

PHP 7.0 ist Ende der ersten Woche des Dezember 2018.

Ab diesem Beitrag unterstützt die aktuelle Version von Magento 2.2.3 (FEBRUAR, 20. Februar 2018) nicht PHP 7.1 oder PHP 7.2.

Sie können die unterstützten Versionen bestätigen, indem Sie den generationspflichtigen Code in Ihrem Magento-Installationsordner überprüfen, und achten Sie nach Code, der dem folgenden ähnlich ist:

generasacodicetagpre.

scheint auch in der generakodicetagcode Probleme zu geben, die 500 Fehler mit Apache 2.4 verursachen.

Zusätzlich enthält die enthaltene Komponistendatei nur Abhängigkeiten für PHP5.5

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top