Magento – Uncaught Error: Function name must be a string in …

En muchas ocasiones, el cambio deversiones de PHP, MySQL o del servidor (Apache), puede llevar a errores en CMS de versiones anteriores. En este caso veamos un error común cuando ponemos Magento versión 1.9.x sobre un servidor actual. Uno de ellos es el Magento – Uncaught Error: Function name…

Uno de los ejemplos, y que nos sucedió a nostros, fue el siguiente. Inicialmente, el error que se mostraba era:

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

Buscando información en los foros oficailes, la solución estaba en cambiar una de las lineas del siguiente fichero :

// Fichero: app\code\core\Mage\Core\Model\Layout.php
// Linea a modificar: 555

El cambio que debemos hacer es:

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

por:

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

Fíjate que el cambio está en añadir las {}. Más abajo os dejo un enlace donde un error parecido, lo soluciona de diferente manera, aunque el error se producte sobre un magento2.

Con esto debería solucionarse. Espero que os sea de utilidad el artículo y que si os encontráis con este error, podáis solucionarlo. Pero como siempre, cada error tiene solución y cada Magento es un mundo. Todo lo qeu hagáis es bajo vuestra responsabilidad. No nos hacemos cargo de lo que toquéis.


Más información