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
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/
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]}();
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.
Allez à la ligne app\code\core\core\Model\Layout.php n ° 555 et
change $callback[1] to {$callback[1]}
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();