web-dev-qa-db-ja.com

関数のネストレベルの最大値「100」に達しました。Laravel 5.1にアップグレードすると中止されます

Laravel 5.1。にアップグレードした後、私のLaravelアプリケーションでこのエラーメッセージが表示されます。

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

enter image description here

この問題は、アプリの一部のURLで発生します。私は何十ものcomposer updateですが、問題は解決しません。すべての提案は高く評価されます

13
Emeka Mbah

この問題は、デフォルトの_xdebug.max_nesting_level_(100)が原因で発生します。

現時点での回避策は、_xdebug.max_nesting_level_を200、300、400などの特定のレベルに増やすことです。

Laravel 5.1の_bootstrap/autoload.php_に以下の行を追加することにより、xdebug.max_nesting_levelを120に増やして私の問題を修正しました。

ini_set('xdebug.max_nesting_level', 120);

.........

define('LARAVEL_START', microtime(true));

49
Emeka Mbah

この問題は、1 PHP Apacheの拡張機能- php_xdebug が原因で作成されます。

したがって、解決策は

  1. 拡張機能を無効にする
  2. 拡張機能のネストレベルを上げる
  3. 増加max_nesting_level in laravel

詳細に

オプション1-

それを無効にするには、 this に従います。

WAMPサーバー を使用している場合は、php.ini- enter image description here

そして、これをコミットします

zend_extension = "c:/WAMP/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11-x86_64.dll"
  • パスはPC間で異なる必要があります
  • 行がコメントである前に#を追加する

オプション2-

制限は this の方法で増やすことができます。

WAMP Server を使用している場合は、php.ini-に移動することで簡単に実行できます。

以降 zend_extension = "c:/WAMP/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11-x86_64.dll"、このようなものがあるはずです-

[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

次に、そこに1行追加するだけです。

xdebug.max_nesting_level=500

オプション3-

この設定はLaravel autoload.php ファイルでも設定できます。

この行をファイルに追加するだけです(ファイル内の任意の場所)。

ini_set('xdebug.max_nesting_level', 500);

そして、あなたは行われます:)

10
Abrar Jahin

この問題はxdebug拡張機能が有効になっているために発生します。これを修正するには、xdebug拡張機能を無効にするか、php.iniファイルを編集してxdebug.max_nesting_levelを200に変更する必要があります(デフォルトでは、このパラメーターはphp.iniと追加する必要があります)

お気に入り :

xdebug.max_nesting_level = 2

0
Naveed Asim