Maximum function nesting level of '100' reached, aborting!

Разрабатывая под новую версию лс при открытии страницы топика неожиданно получил сообщение об ошибке:

Fatal error: Maximum function nesting level of '100' reached, aborting! in \www\framework\classes\engine\Engine.class.php on line 583


сначала думал что это дополнительные поля, но после установки чистой разрабатываемой ветки лс из git'а оказалось что падает из-за шаблонизатора Smarty. При длительном анализе оказалось что идет глубокая цепочка инклудов/наследований в шаблоне:

основной слой → топик → список комментариев → комментарий → форма комментария → редактор (editor.tpl) → модальное окно (modal.upload_image.tpl) → modal.upload_image.gallery.tpl

если удалить инклуд modal.upload_image.gallery.tpl, то падает уже сам смарти из-за инклуда полей ниже по шаблону, но если убрать все инклуды из modal.upload_image.tpl, то страница загружается нормально.

Причина оказалась в отладчике xDebug у которого по-умолчанию стоит лимит в 100 циклов рекурсии. Для решения проблемы нужно в php.ini установить значение глубины рекурсии в 150:

xdebug.max_nesting_level = 150
0 комментариев
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.