Se si desidera eseguire il tuo sito web Magento 1.x su PHP7, è necessario effettuare alcune piccole modifiche nei tuoi file Magento 1.x per farlo funzionare senza problemi.
La maggior parte del codice Magento è ancora valido in PHP 7, ci sono poche incompatibilità elencate di seguito:
1. Problemi di sintassi variabili uniformi:
.
1.1 app / code / core / mage / core / modello / layout.php: 555
Questo file causa e errore fatale che si blocca magento. Sovrascrivere il file e
Sostituisci
$out .= $this->getBlock($callback[0])->$callback[1]();
.
con
$out .= $this->getBlock($callback[0])->{$callback[1]}();
.
.
1.2 app \ code \ core \ mage \ importexport \ modello \ import \ uploader.php: 135
Questo file Effects Magento CSV Importatore. Sostituire il file, quindi sovrascrivere la funzione _validatefile () e sostituire la linea 135 con
Sostituisci
$params['object']->$params['method']($filePath);
.
con
$params['object']->{$params['method']}($filePath);
.
.
1.3 App \ Code \ Core \ Mage \ Importexport \ Modello \ Esporta \ Entity \ Prodotto \ Type \ Abstract.php: 99
Questo problema Effetto la funzionalità di esportazione di Magento. Magento estende tre classi di sopra la classe astratta, quindi la causa principale dell'errore all'interno della classe è la linea # 99 nella classe sopra la classe.
mage_importexport_model_export_enty_product_type_configurableurble
Mage_importexport_model_export_enty_product_type_grouped.
Mage_importexport_model_export_enty_product_type_simple
Dobbiamo scavalcarci sopra tre classi nel nostro pool di codice locale e override overrideationtribute () funzione, sostituire la linea # 99
$data['filter_options'] = $this->$data['options_method']();
.
con
$data['filter_options'] = $this->{$data['options_method']}();
.
.
1.4 App \ Code \ Core \ Mage \ Importexport \ Model \ Export \ Entity \ Customer.php: 250
Questo file Effects Funzionalità di esportazione dei clienti. Sostituisci il file sopra e modifica la linea # 250 come mostrato sotto
$data['filter_options'] = $this->$data['options_method']();
.
con
$data['filter_options'] = $this->{$data['options_method']}();
.
.
1.5 lib \ varien \ file \ uploader.php: 259
Il caricamento del file non funzionerà. Magento estende mage_core_model_file_uploader dalla classe sopra, quindi dobbiamo sovrascrivere questa classe e riscrivere la funzione _validatefile () Sostituire sotto la riga
$params['object']->$params['method']($this->_file['tmp_name']);
.
con
$params['object']->{$params['method']}($this->_file['tmp_name']);
.
2. Digita il problema del casting
.
2.1 App \ Code \ Core \ Mage \ Core \ Model \ Resource \ session.php: 218
Sessioni magenta Non funzionano su PHP 7, quindi come risultato Login dell'utente non funziona.
Leggi ($ sessid) La funzione deve restituire una stringa in modo da TypeCAst la variabile di ritorno come indicato di seguito
return $data;
.
con
return (string)$data;
.
3. Grande totale errato
I totali errati sono dovuti a ordinamento errato di subtotale, sconto, spedizione ecc
Correggere l'ordinamento creando un'estensione e metti sotto il codice in config.xml dell'estensione
<global>
<sales>
<quote>
<totals>
<msrp>
<before>grand_total</before>
</msrp>
<shipping>
<after>subtotal,freeshipping,tax_subtotal,msrp</after>
</shipping>
</totals>
</quote>
</sales>
</global>
.
Ecco il riferimento originale a ciò che ho pubblicato sopra:
http://scriptbaker.com/tag/magento-1-9/ .
Se non riesci a trovare alcuna query nel tuo codice, quindi questo sarà coperto da magento e come ho detto prima, la maggior parte del codice è valida in modo da poterlo semplicemente ignorarlo. Credo che tutto ciò possa rispondere alla tua domanda.