Magento: PHP 7 verwenden
Magento-Logo

Magento: PHP 7 verwenden

Das Shopsystem Magento kann unter PHP 7 betrieben werden. Dazu ist in der Magento-Version 1.9 nur eine kleine Anpassung nötig.

Wenn man Magento unter PHP 7 ausführt, erscheint die folgende Fehlermeldung:

1
2
3
4
5
6
7
8
Fatal error: Uncaught Error: Function name must be a string in /app/code/core/Mage/Core/Model/Layout.php:555
Stack trace:
#0 /app/code/core/Mage/Core/Controller/Varien/Action.php(390): Mage_Core_Model_Layout->getOutput() 
#1 /app/code/local/MW/Affiliate/controllers/IndexController.php(531): Mage_Core_Controller_Varien_Action->renderLayout()
#2 /app/code/core/Mage/Core/Controller/Varien/Action.php(418): MW_Affiliate_IndexController->transactionAction()
#3 /app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(254): Mage_Core_Controller_Varien_Action->dispatch('transaction')
#4 /app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
in /app/code/core/Mage/Core/Model/Layout.php on line 555
Mit einem Doppelklick kann der gesamte Code markiert werden.

Der Fehler kann durch eine Anpassung in der Zeile 555 in der Datei /app/code/core/Mage/Core/Model/Layout.php behoben werden. Dazu muss nur

1
$out .= $this->getBlock($callback[0])->$callback[1]();
Mit einem Doppelklick kann der gesamte Code markiert werden.

durch

1
$out .= $this->getBlock($callback[0])->{$callback[1]}();
Mit einem Doppelklick kann der gesamte Code markiert werden.

ersetzt werden. Danach sollte Magento unter PHP 7 ausführbar sein.

Geschrieben von: Jens Richter