significado - php y laravel
Se alcanzó el nivel máximo de anidación de función de ''100'', abortando después de actualizar a Laravel 5.1 (2)
Recibo este mensaje de error en mi aplicación Laravel después de actualizar a Laravel 5.1.
FatalErrorException in Dispatcher.php line 200:
Maximum function nesting level of ''100'' reached, aborting!
Este problema ocurre en algunas URL de mi aplicación. He hecho docenas de composer update
de composer update
pero el problema aún persiste. Cualquier sugerencia será apreciada
El problema es causado por defecto xdebug.max_nesting_level
que es 100.
La solución por el momento es aumentar xdebug.max_nesting_level
a un cierto nivel, digamos 200 o 300 o 400
Reparé el mío aumentando xdebug.max_nesting_level a 120, agregando la línea siguiente a bootstrap/autoload.php
en Laravel 5.1
ini_set(''xdebug.max_nesting_level'', 120);
.........
define(''LARAVEL_START'', microtime(true));
El problema se crea debido a la extensión de 1 PHP en Apache- php_xdebug
Entonces, la solución es-
- Deshabilitar la extensión
- Aumenta el nivel de anidamiento de la extensión
- Aumentando
max_nesting_level
en laravel
En detalle
Opción 1-
Para deshabilitarlo, puedes seguir esto .
Si está usando WAMP Server , puede hacerlo fácilmente visitando php.ini -
Y luego cometer esto-
zend_extension = "c:/WAMP/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11-x86_64.dll"
- Path debe ser diferente de PC a PC
- Agregar un # antes de la línea es un comentario
Opcion 2-
Puede aumentar el límite de esta manera.
Si está usando WAMP Server , puede hacerlo fácilmente visitando php.ini -
Y después de zend_extension = "c:/WAMP/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11-x86_64.dll"
, debería haber algo como esto-
[xdebug]
xdebug.remote_enable = off
xdebug.profiler_enable = off
xdebug.profiler_enable_trigger = off
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir = "c:/WAMP/tmp"
xdebug.show_local_vars=0
Entonces, solo agrega 1 línea allí-
xdebug.max_nesting_level=500
Opción 3-
También puede establecer esta configuración en el archivo Laravel autoload.php .
Simplemente puede agregar esta línea en el archivo (en cualquier lugar del archivo) -
ini_set(''xdebug.max_nesting_level'', 500);
Y habrás terminado :)