Header Ads Widget

Ticker

6/recent/ticker-posts

Depurando el bucle infinito de PHP en Magento 2

 Hay situaciones en Magento 2 en las que la página sigue cargándose y luego obtiene 500 errores fatales, límite de memoria o error de tiempo de espera. Este es un ciclo infinito en el código PHP, cuando el mismo código se ejecuta una y otra vez. Está relacionado con algunos problemas centrales de Magento o, muy probablemente, con una extensión de terceros.

Para depurar un bucle infinito y encontrar la entrada del bucle, siga los pasos a continuación:

1. Abra el  archivo app / bootstrap.php  y agregue este código justo después de la etiqueta abierta de PHP <? Php en la siguiente línea

$ _SERVER ['MAGE_PROFILER'] = 'html';

2. Abra el  archivo vendor / magento / framework / Profiler.php y agregue este código al comienzo de la función " public static function start ($ timerName, array $ tags = null) ", por ejemplo

privado estático $ primera vez = nulo;
inicio de función estática pública ($ timerName, matriz $ etiquetas = nulo) 
{

    if (! self :: $ firsttime) {
        self :: $ firsttime = time ();
    }

    if (time () - self :: $ firsttime> 10) {// 10 - son segundos para esperar
        \ Magento \ Framework \ Debug :: backtrace (falso, verdadero, falso); // Magento 2 Debug Backtrace
        exit ();
    }

3. Abra la página con el problema del bucle.

4. Verifique la información de retroceso para tener una idea de cómo el código crea un bucle. Preste atención a la extensión personalizada, debería ver sus métodos una y otra vez en el backtrace.

5. Una vez hecho esto, no olvide revertir los cambios en  bootstrap.php y  Profiler.php

Publicar un comentario

0 Comentarios