PHP 7 mencapai status beta dan banyak pengujian sedang berlangsung saat ini. Mengingat bahwa Magento terperangkap dalam setahun terakhir dari "hanya berjalan pada PHP 5.3" hingga "sepenuhnya kompatibel dengan PHP 5.6", saya ingin tahu seberapa banyak mereka mempertimbangkan kompatibilitas PHP 7 untuk Magento 1.x serta Magento 2.
Saya menemukan posting ini oleh Anna Filina di mana dia menemukan satu masalah di Magento 1.9.1 (masih tidak berubah pada 1.9.2), tetapi mengingat bahwa Magento 1 tidak memiliki unit test, saya tidak percaya bahwa ini adalah satu-satunya masalah.
Jadi pertanyaannya adalah: apakah kompatibilitas PHP 7 untuk Magento 1 akan terjamin? Dan karena Magento 2 mungkin telah diuji di PHP 7 (Terima tes otomatis!), Apakah ada masalah yang diketahui?
Jawaban:
Magento mengumumkan secara resmi pada 20 Januari 2016, bahwa CE dan EE 2.0.1 secara resmi mendukung PHP 7.0.2.
Tautan: https://magento.com/blog/technical/new-magento-20-resources-and-support-php7
sumber
Jika Anda menggunakan versi terbaru, M CE 1.9.2.2, ada ekstensi yang akan membawanya ke kompatibilitas penuh PHP 7: https://github.com/Inchoo/Inchoo/Inchoo_PHP7 . (Penafian: Saya penulis, meskipun ada banyak bantuan dari komunitas.)
Ini juga dapat diinstal melalui Komposer dari http://packages.firegento.com/ .
Semua ketidakcocokan yang disebutkan di sini sudah diperbaiki. Kami pikir mungkin masih ada beberapa kasus tepi, tetapi tidak ada yang berhenti. Pengujian, pelaporan masalah, dan permintaan tarik dipersilakan.
sumber
Tidak tahu tentang PHP7, tapi saya kira sebagian besar hal masih berlaku di PHP7, Anda dapat menemukan informasi lebih lanjut di blog Matthias Geniar
Saya pikir satu-satunya hal yang mungkin kita miliki di Magento adalah
preg_replace()
eval modifier tapi mudah-mudahan tidak.Selain itu, Magento dikirim 1.9.2 dengan TAF yang diperbarui, Anda dapat menemukan di dev. Dengan ini, Anda harus dapat menjalankan banyak tes frontend pada PHP7 dan memeriksa log sesudahnya
sumber
Tidak ada komentar tentang Magento 1, tetapi Magento 2 memang memiliki beberapa masalah dengan nama kelas seperti "String". Tidak butuh waktu lama untuk memperbaikinya, tetapi tidak berhasil. Saya berharap Magento 2 akan diperbaiki, tetapi mungkin belum diperbaiki karena prioritas lain terlebih dahulu.
sumber
Hampir siap. Saya mencoba menjalankan Magento 1.9.2.1 yang bersih dengan PHP 7 RC1, yang mengakibatkan crash instan (kesalahan fatal) dari Magento. Setelah memperbaiki masalah ini, semuanya tampak berfungsi, kecuali backend, yang saya tidak dapat masuk. Kemudian ternyata menjadi masalah terkait sesi yang dapat ditambal.
Secara singkat:
Kesalahan fatal dapat diperbaiki dengan
Mage_Core_Model_Layout
mengganti lalu mengubah baris 555 dari:$out .= $this->getBlock($callback[0])->$callback[1]();
menjadi
$out .= $this->getBlock($callback[0])->{$callback[1]}();
Masalah sesi sementara bisa diperbaiki dengan menimpa
Mage_Core_Model_Session_Abstract_Varien
dan menulis ulanggetData
,setData
,unsetData
,addFullNames
metode, sehingga di mana-mana di mana$this->_data
digunakan, maka akan diganti oleh$_SESSION
.Jika seseorang tertarik dengan solusinya, dapat ditemukan di sini .
sumber
Varien_File_Uploader
, lihat magento.stackexchange.com/questions/93066/…Magento2 siap untuk PHP 7. Adaptasi kode ke PHP7 telah dilakukan dan semua perubahan tersedia di mengembangkan cabang. Lihat masalah pada GitHub
Juga, dukungan php 7 di Magento1 memerlukan perubahan yang tidak kompatibel ke belakang dan saya pikir tidak akan didukung secara resmi.
sumber
Ada masalah dengan bagaimana Magento menghitung total pesanan, dan menerapkan diskon. Ini juga menghentikan checkout Paypal express, karena item baris tidak menambahkan hingga total keseluruhan dengan diskon.
Masalahnya tampaknya bahwa
Mage_Sales_Model_Config_Ordered::_compareTotals()
tidak berfungsi sama di PHP7 dengan PHP5, danuasort()
sekarang mengandalkan hubungan transitif untuk pemesanan, tetapi ini tidak harus untuk total pesanan.Coba gunakan: -
sumber
Ini adalah penelitian saya, saya ingin berbagi dengan Anda tentang ketidakcocokan magento php7. Saat ini saya telah menemukan beberapa tempat di mana kode harus gagal karena sintaks variabel seragam.
File: app / code / core / Mage / ImportExport / Model / Ekspor / Entitas / Produk / Jenis / Abstract.php
Metode: overrideAttribute
File: app / code / core / Mage / ImportExport / Model / Ekspor / Entitas / Pelanggan.php
Metode: filterAttributeCollection
File: app / code / core / Mage / ImportExport / Model / Import / Uploader.php
Metode: _validateFile
File: app / code / core / Mage / Katalog / Model / Produk / Tautan / Api / V2.php
Metode: tetapkan
File: app / code / core / Mage / Katalog / Model / Produk / Tautan / Api / V2.php
Metode: pembaruan
File: lib / Varien / File / Uploader.php
Metode: _validateFile
File: app / code / core / Mage / Core / Model / Layout.php
Metode: getOutput
sumber
Selain jawaban lain yang terkait dengan Magento 1:
Ketidakcocokan PHP 7 di
Zend_XmlRpc_Server
telah diperbaiki di Zend Framework 1.12.12Semua versi sebelum CE 1.9.2.2 / EE 1.14.2.2 menggunakan versi Zend Framework yang lebih lama, sehingga mungkin memiliki masalah jika Anda menggunakan API XML-RPC dari Magento.
sumber
Periksa file dari inchoo yang diubah menjadi M1 kompatibel dengan php 7, itu adalah perubahan kecil dalam beberapa file tetapi kerja cerdas dari Inchoo. https://github.com/Inchoo/Inchoo_PHP7/tree/master/app/code/local/Inchoo/PHP7
sumber
Saya menggunakan Magento 2 CE Versi 2.1.4 & Bekerja dengan baik.
magento \ app \ bootstrap.php
sumber
Jawaban singkatnya adalah tidak, tidak. Magento CE 1.9.2.4 hanya mendukung PHP 5.4 dan 5.5 secara resmi. Dan sementara PHP 5.6 menjalankannya dengan baik, itu menjenuhkan file log dengan banyak pesan peringatan.
Jawaban panjangnya adalah relatif mudah untuk memodifikasinya untuk menjalankan dukungan PHP7. Namun banyak ekstensi yang masih belum kompatibel dengan PHP7 sehingga Anda sebagian besar mandiri.
sumber
PHP 7.0 adalah Akhir dari kehidupan sejak minggu pertama Desember 2018.
Pada posting ini, versi Magento 2.2.3 saat ini (20 Februari 2018 rilis) tidak mendukung PHP 7.1, atau PHP 7.2.
Anda dapat mengonfirmasi versi yang didukung dengan memeriksa
app/bootstrap.php
di folder pemasangan Magento Anda, dan mencari kode yang serupa dengan yang berikut:Tampaknya juga ada masalah
.htaccess
yang menyebabkan 500 kesalahan dengan apache 2.4.Selain itu, file komposer yang disertakan hanya berisi dependensi untuk php5.5
sumber