2016-02-24 40 views
22

te błędy podczas uzyskiwania dostępu do folderu Magento z XAMPP (localhost/magento):Błąd krytyczny: Uncaught Error: Nazwa funkcji musi być ciągiem znaków w C: xampp htdocs em0126 app code core Mage Core Model Layout.php: 555 Ślad stosu: # 0

Fatal error: Uncaught Error: Function name must be a string in C:\xampp\htdocs\em0126\app\code\core\Mage\Core\Model\Layout.php:555 Stack trace: #0 C:\xampp\htdocs\em0126\app\code\core\Mage\Core\Controller\Varien\Action.php(390): Mage_Core_Model_Layout->getOutput() #1 C:\xampp\htdocs\em0126\app\code\core\Mage\Install\controllers\WizardController.php(120): Mage_Core_Controller_Varien_Action->renderLayout() #2 C:\xampp\htdocs\em0126\app\code\core\Mage\Core\Controller\Varien\Action.php(418): Mage_Install_WizardController->beginAction() #3 C:\xampp\htdocs\em0126\app\code\core\Mage\Core\Controller\Varien\Router\Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('begin') #4 C:\xampp\htdocs\em0126\app\code\core\Mage\Core\Controller\Varien\Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http)) #5 > C:\xampp\htdocs\em0126\app\code\core\Mage\Core\Model\App.php(354): Mage_Core_Controller_Varien_Front->dispatch() #6 C:\xampp\htdocs\em0126\app\Mage.php(683): Mage_Core_Mo in C:\xampp\htdocs\em0126\app\code\core\Mage\Core\Model\Layout.php on line 555

Odpowiedz

74

Twoje rozwiązanie

Fatal error: Uncaught Error: Function name must be a string in ... app\code\core\Mage\Core\Model\Layout.php:555 ...

Ten błąd był łatwy do ustalenia, ponieważ problem był w następującej linii:

$out .= $this->getBlock($callback[0])->$callback[1](); 

Zamiast tego powinno być:

$out .= $this->getBlock($callback[0])->{$callback[1]}(); 

znaleźć rozwiązanie szczegółowo na niżej podanym linkiem http://www.code007.ro/making-work-magento-with-php-7-rc1/

+0

To s działa tylko w porządku, gdy doda układ .php $ out. = $ this-> getBlock ($ callback [0]) -> {$ callback [1]}(); – Elangovan

+4

Pracował dla mnie, prawdopodobnie wydanie PHP7 –

+3

Z pewnością problem z php7 +1 –

8

Go do app \ code \ rdzeń \ Mage \ Rdzeń \ Modele \ Layout.php linii 555 i nie

change $callback[1] to {$callback[1]} 
5

Zmieniono linię 555 do:

$out .= $this->getBlock($callback[0])->{$callback[1]}(); 

To działa. Ale jedna rzecz nie jestem pewna, czy to naprawdę jest php7. Używam tego na mojej stronie z tymi samymi plikami i konfiguracjami na tym samym serwerze i działa bez żadnych problemów bez zmiany tej linii.

+1

Druga strona prawdopodobnie używa PHP5, a nie PHP7 :) –

6

jest to problem dotyczący wersji 7, ponieważ po aktualizacji z wersji 5.6 na 7.0 pojawił się ten błąd. aby to naprawić, edytowałem plik core (mam nadzieję, że łatka pojawi się wkrótce) albo jak wspomniałem w innych wersjach przed lub jak poniżej:

Idź do aplikacji \ kod \ core \ Mag \ Rdzeń \ Model \ Layout.php linia nr 555

$method = $callback[1]; 
$out .= $this->getBlock($callback[0])->$method(); 
7

Jego powodu PHP7

nie zaleca się, aby edytować plik core. Zastąpimy to.

Skopiuj plik app/code/core/Mage/Core/Model/Layout.php do app/code/local/Mage/Core/Model/Layout.php

Zmiana kodu w app/code/local/Mage/Core/Model/Layout.php pliku (linia # 555)

$out .= $this->getBlock($callback[0])->$callback[1](); 

Do:

$out .= $this->getBlock($callback[0])->{$callback[1]}();