10 Oct 2016

Magento1 con PHP7

Magento1 con PHP7

De todas las aplicaciones que he migrado a PHP7, sólo una me ha causado conflictos: Magento 1.

El problema es bastante simple de resolver, claro que implica tocar el core del framework.

Debido a que esta versión no tiene un repositorio público al que pueda mandar la actualización, dejo aquí el parche, en caso de que resulte de utilidad.

En el archivo: app/code/core/Mage/Core/Model/Layout.php, hay que actualizar la función getOutput:


/**
 * Get all blocks marked for output
 *
 * @return string
 */
public function getOutput()
{
    $out = '';
    if (!empty($this->_output)) {
        foreach ($this->_output as $callback) {
            // For PHP7 @deivanmiranda
            //$out .= $this->getBlock($callback[0])->$callback[1]();
            $functionName = $callback[1];
            $out .= $this->getBlock($callback[0])->$functionName();
        }
    }

    return $out;
}

Si te interesa saber por que sucede esto, lee sobre el nuevo Uniform Variable Syntax.

Artículos relacionados