php 达到最大函数嵌套级别“100”,升级到 Laravel 5.1 后中止

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/30803342/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-25 22:04:28  来源:igfitidea点击:

Maximum function nesting level of '100' reached, aborting after upgrading to Laravel 5.1

phplaravel-5homestead

提问by Emeka Mbah

I'm getting this error message in my Laravel application after I upgraded to 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

在此处输入图片说明

This issue occurs on some URLs of my app. I have done dozens of composer updatebut issue still persist. Any suggestion at all will be appreciated

此问题出现在我的应用程序的某些 URL 上。我做了几十个,composer update但问题仍然存在。任何建议都将不胜感激

回答by Emeka Mbah

Issue is caused by default xdebug.max_nesting_levelwhich is 100.

问题是由默认值xdebug.max_nesting_level100引起的。

The workaround for now is to increase xdebug.max_nesting_levelto a certain level say 200 or 300 or 400

现在的解决方法是增加到xdebug.max_nesting_level某个级别,比如 200 或 300 或 400

I fixed mine by increasing xdebug.max_nesting_level to 120, by adding the line below to bootstrap/autoload.phpin Laravel 5.1

我通过将 xdebug.max_nesting_level 增加到 120 来修复我的问题,方法是bootstrap/autoload.php在 Laravel 5.1 中添加以下行

ini_set('xdebug.max_nesting_level', 120);

ini_set('xdebug.max_nesting_level', 120);

.........

…………

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

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

回答by Abrar Jahin

The problem is created because of 1 PHP extension in Apache- php_xdebug

该问题是由于 Apache- php_xdebug 中的 1 个 PHP 扩展而产生的

So, the solution is-

所以,解决办法是——

  1. Disable the extension
  2. Increase the nesting level of the extension
  3. Increasing max_nesting_levelin laravel
  1. 禁用扩展
  2. 增加扩展的嵌套级别
  3. max_nesting_level在 Laravel 中增加

In detail

详细

Option 1-

选项1-

To disable it, you can follow this.

要禁用它,您可以按照此操作

If you are using WAMP Server, then you can easily do it by going to php.ini- enter image description here

如果您使用的是WAMP Server,那么您可以通过转到php.ini轻松完成- 在此处输入图片说明

And then commit this-

然后提交这个——

zend_extension = "c:/WAMP/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11-x86_64.dll"
  • Path should be different from PC to PC
  • Adding an # before the line is a comment
  • 路径应该不同从 PC 到 PC
  • 在该行前添加 # 是注释

Option 2-

选项 2-

You can increase the limit by thisway.

您可以通过这种方式增加限制。

If you are using WAMP Server, then you can easily do it by going to php.ini-

如果您使用的是WAMP Server,那么您可以通过转到php.ini轻松完成-

And after zend_extension = "c:/WAMP/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11-x86_64.dll", there should be something like this-

之后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

Then, just add 1 line there-

然后,只需在那里添加 1 行-

xdebug.max_nesting_level=500

Option 3-

选项 3-

You can also set this configuration in Laravel autoload.phpfile.

你也可以在 Laravel autoload.php文件中设置这个配置。

You can simply add this line in the file (anywhere in the file)-

您可以简单地在文件中添加这一行(文件中的任何位置)-

ini_set('xdebug.max_nesting_level', 500);

And you will be done :)

你会完成:)

回答by Naveed Asim

This issue is due to xdebug extension is enabled, to fix this either you have to disable xdebug extension or edit php.ini file and change xdebug.max_nesting_levelto 200 ( as by default this parameter is not included in php.ini and have to add it )

此问题是由于启用了 xdebug 扩展,要解决此问题,您必须禁用 xdebug 扩展或编辑 php.ini 文件并将xdebug.max_nesting_level更改为 200(默认情况下,此参数不包含在 php.ini 中,必须添加它 )

like :

喜欢 :

xdebug.max_nesting_level=200

xdebug.max_nesting_level=200