web-dev-qa-db-fra.com

Niveau maximal d'imbrication des fonctions de '100' atteint, abandon après mise à niveau vers Laravel 5.1

Ce message d'erreur s'affiche dans mon application Laravel après la mise à niveau vers Laravel 5.1.

FatalErrorException in Dispatcher.php line 200:
Maximum function nesting level of '100' reached, aborting!

enter image description here

Ce problème se produit sur certaines URL de mon application. J'ai fait des dizaines de composer update mais le problème persiste. Toute suggestion sera appréciée 

12
Digitlimit

Le problème est créé à cause de l'extension 1 PHP dans Apache- php_xdebug

Donc, la solution est-

  1. Désactiver l'extension
  2. Augmenter le niveau d'imbrication de l'extension
  3. Augmenter max_nesting_level en laravel

En détail

Option 1-

Pour le désactiver, vous pouvez suivre this .

Si vous utilisez Serveur WAMP , vous pouvez facilement le faire en allant à php.ini -  enter image description here

Et puis commettez this-

zend_extension = "c:/WAMP/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11-x86_64.dll"
  • Le chemin doit être différent d'un PC à l'autre
  • Ajouter un # avant la ligne est un commentaire

Option 2-

Vous pouvez augmenter la limite de this way.

Si vous utilisez Serveur WAMP , vous pouvez le faire facilement en allant à php.ini -

Et après zend_extension = "c:/WAMP/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11-x86_64.dll", il devrait y avoir quelque chose comme ceci-

[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

Ensuite, ajoutez simplement 1 ligne

xdebug.max_nesting_level=500

Option 3-

Vous pouvez également définir cette configuration dans Laravel autoload.php file.

Vous pouvez simplement ajouter cette ligne dans le fichier (n'importe où dans le fichier) -

ini_set('xdebug.max_nesting_level', 500);

Et vous aurez fini :)

9
Abrar Jahin

Ce problème est dû au fait que l'extension xdebug est activée. Pour résoudre ce problème, vous devez soit désactiver l'extension xdebug, soit modifier le fichier php.ini et modifier xdebug.max_nesting_level en 200 (ce paramètre n'est pas inclus php.ini et je dois l'ajouter)

comme :

xdebug.max_nesting_level = 200

0
Naveed Asim