web-dev-qa-db-fra.com

Erreur fatale: Erreur non capturée: le nom de la fonction doit être une chaîne dans C: \ xampp \ htdocs \ em0126 \ app \ code \ core \ Mage \ Core \ Model \ Layout.php: 555 Trace de pile: # 0

Je suis confronté à ces erreurs lors de l'accès au dossier Magento à partir de XAMPP (localhost/magento):

Erreur fatale: Erreur non capturée: le nom de la fonction doit être une chaîne dans C:\xampp\htdocs\em0126\app\code\core\Mage\Core\Modèle\Layout.php: 555 Trace de pile: # 0 C:\xampp\htdocs\em0126\app\code\core\Mage\Core\Contrôleur\Varien\Action.php (390): Mage_Core_Model_Layout-> getOutput () # 1 C:\xampp\htdocs\em0126\app\code\core\core\Mage\Install\controllers\WizardController.php (120): Mage_Core_Controller_Varien_Action-> renderLayout () # 2 C:\xampp\htdocs\em0126\app\code\core\Mage\Core\Contrôleur\Varien\Action.php (418): Mage_Install_WizardColler > beginAction () # 3 C:\xampp\htdocs\em0126\app\code\core\Mage\Core\Contrôleur\Varien\Routeur\Standard.php (250): Mage_Core_Controller_Varien_Action-> dispatch ('begin') # 4 C :\xampp\htdocs\em0126\app\code\core\Mage\Core\Contrôleur\Varien\Front.php (172): Mage_Core_Controller_Vouter_Router_Standard-> match (Object (Mage_Core_Controller_Request_Http)) # 5> C\app\code\core\Mage\Core\Modèle\App.php (354): Mage_Core_Controller_Varien_Front-> dispatch () # 6 C:\xampp\htdocs\em0126\app\Mage.php (683): ​​Mage_Core_Mo dans C:\xampp\htdocs\em0126\app\code\core\Mage\Core\Model\Layout.php à la ligne 555

33
Sher Ali

Votre solution

Erreur fatale: Erreur non capturée: le nom de la fonction doit être une chaîne dans ... app\code\core\Mage\Core\Modèle\Layout.php: 555 ...

Cette erreur était facile à corriger car le problème se trouvait dans la ligne suivante:

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

Au lieu de cela, il devrait être:

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

trouvez votre solution de détail ici sur le lien ci-dessous http://www.code007.ro/making-work-magento-with-php-7-rc1/

99
Abhishek Baranwal

C'est dû à PHP7

Il n'est pas recommandé de modifier le fichier core. Nous allons passer outre.

Copiez ce fichier app/code/core/Mage/Core/Model/Layout.php Dans app/code/local/Mage/Core/Model/Layout.php

Changer le code dans le fichier app/code/local/Mage/Core/Model/Layout.php (Ligne # 555)

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

À:

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

Changé la ligne 555 à:

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

Ça marche. Mais une chose que je ne suis pas sûr de savoir si c'est vraiment un php7. J'exécute ceci sur mon site Web avec les mêmes fichiers et configurations sur le même serveur et cela fonctionne sans problèmes sans changer cette ligne.

17
MsC

Allez à la ligne app\code\core\core\Model\Layout.php n ° 555 et

 change $callback[1] to {$callback[1]}
10
Pankaj Upadhyay

c'est un problème de php7 depuis quand j'ai mis à jour de 5.6 à 7.0 j'ai eu cette erreur. pour le fixer, j'ai édité le fichier core (j'espère qu'un patch viendra bientôt) soit comme mentionné dans d'autres réponses avant ou comme ci-dessous:

Accédez à la ligne app\code\core\mage\core\modèle\mise en page.php n ° 555

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