При большом числе плагинов "Fatal error: Maximum function nesting level of '100' "
Fatal error: Maximum function nesting level of '100' reached, aborting! in /home/u04104/goloskarpat.info/html/engine/classes/Engine.class.php on line 882 Call Stack: 0,0000 646840 1. {main}() /home/u04104/goloskarpat.info/html/index.php:0 0,0322 1729096 2. Router->Exec() /home/u04104/goloskarpat.info/html/index.php:34 0,3306 7880504 3. Router->Shutdown() /home/u04104/goloskarpat.info/html/engine/classes/Router.class.php:127 0,3766 8260408 4. Router->Viewer_Display() /home/u04104/goloskarpat.info/html/engine/classes/Router.class.php:137 0,3766 8260920 5. Router->__call() /home/u04104/goloskarpat.info/html/engine/classes/Router.class.php:0 0,3766 8260920 6. Engine->_CallModule() /home/u04104/goloskarpat.info/html/engine/classes/Router.class.php:439 0,3851 8336600 7. call_user_func_array() /home/u04104/goloskarpat.info/html/engine/classes/Engine.class.php:551 0,3851 8337088 8. PluginAceadminpanel_ModuleViewer->Display() /home/u04104/goloskarpat.info/html/engine/classes/Engine.class.php:0 0,3861 8342392 9. ModuleViewer->Display() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/classes/modules/viewer/Viewer.class.php:431 0,3866 8342552 10. Smarty_Internal_TemplateBase->display() /home/u04104/goloskarpat.info/html/engine/modules/viewer/Viewer.class.php:326 0,3866 8342872 11. Smarty_Internal_TemplateBase->fetch() /home/u04104/goloskarpat.info/html/engine/lib/external/Smarty/libs/sysplugins/smarty_internal_templatebase.php:374 0,3877 8426792 12. content_515db307efdda4_38687040() /home/u04104/goloskarpat.info/html/engine/lib/external/Smarty/libs/sysplugins/smarty_internal_templatebase.php:180 0,4317 9142248 13. Smarty_Internal_Template->getSubTemplate() /home/u04104/goloskarpat.info/html/templates/compiled/gk/e5fe9d69bf4b3f6694e971557ca19881eec0596b.file.index.tpl.php:26 0,4319 9146728 14. Smarty_Internal_TemplateBase->fetch() /home/u04104/goloskarpat.info/html/engine/lib/external/Smarty/libs/sysplugins/smarty_internal_template.php:288 ............................... 0,4542 9436368 41. include_once('/home/u04104/goloskarpat.info/html/plugins/userrating/classes/modules/topic/entity/Topic.entity.class.php') /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:717 0,4542 9436960 42. HelperPluginLoader->Autoloader() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:0 0,4547 9439936 43. HelperPluginLoader->ClassAlias() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:680 0,4547 9440096 44. class_alias() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:752 0,4547 9440648 45. HelperPluginLoader->Autoloader() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:0 0,4550 9443168 46. HelperPluginLoader->ClassLoad() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:700 0,4556 9446024 47. include_once('/home/u04104/goloskarpat.info/html/plugins/sitemap/classes/modules/topic/entity/Topic.entity.class.php') /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:717 0,4556 9446600 48. HelperPluginLoader->Autoloader() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:0 0,4559 9449576 49. HelperPluginLoader->ClassAlias() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:680 0,4559 9449736 50. class_alias() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:752 0,4559 9450312 51. HelperPluginLoader->Autoloader() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:0 0,4562 9452840 52. HelperPluginLoader->ClassLoad() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:700 0,4568 9457616 53. include_once('/home/u04104/goloskarpat.info/html/plugins/publishfrom/classes/modules/topic/entity/Topic.entity.class.php') /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:717 0,4568 9458216 54. HelperPluginLoader->Autoloader() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:0 0,4572 9461200 55. HelperPluginLoader->ClassAlias() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:680 0,4572 9461360 56. class_alias() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:752 0,4572 9461936 57. HelperPluginLoader->Autoloader() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:0 0,4574 9464464 58. HelperPluginLoader->ClassLoad() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:700 0,5184 9471760 59. include_once('/home/u04104/goloskarpat.info/html/plugins/mainpreview/classes/modules/topic/entity/Topic.entity.class.php') /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:717 0,5184 9472360 60. HelperPluginLoader->Autoloader() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:0 0,5191 9475336 61. HelperPluginLoader->ClassAlias() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:680 0,5191 9475496 62. class_alias() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:752 0,5191 9476048 63. HelperPluginLoader->Autoloader() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:0 0,5194 9478576 64. HelperPluginLoader->ClassLoad() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:700 0,5202 9482600 65. include_once('/home/u04104/goloskarpat.info/html/plugins/geoevent/classes/modules/topic/entity/Topic.entity.class.php') /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:717 0,5202 9483176 66. HelperPluginLoader->Autoloader() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:0 0,5206 9486160 67. HelperPluginLoader->ClassAlias() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:680 0,5207 9486320 68. class_alias() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:752 0,5207 9486896 69. HelperPluginLoader->Autoloader() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:0 0,5209 9489440 70. HelperPluginLoader->ClassLoad() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:700 0,5214 9493496 71. include_once('/home/u04104/goloskarpat.info/html/plugins/fphotoset/classes/modules/fphotoset/entity/Topic.entity.class.php') /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:717 0,5214 9494072 72. HelperPluginLoader->Autoloader() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:0 0,5218 9497048 73. HelperPluginLoader->ClassAlias() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:680 0,5218 9497208 74. class_alias() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:752 0,5218 9497760 75. HelperPluginLoader->Autoloader() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:0 0,5220 9500280 76. HelperPluginLoader->ClassLoad() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:700 0,5225 9522240 77. include_once('/home/u04104/goloskarpat.info/html/plugins/event/classes/modules/topic/entity/Topic.entity.class.php') /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:717 0,5225 9522816 78. HelperPluginLoader->Autoloader() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:0 0,5229 9525784 79. HelperPluginLoader->ClassAlias() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:680 0,5229 9525944 80. class_alias() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:752 0,5229 9526496 81. HelperPluginLoader->Autoloader() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:0 0,5231 9529016 82. HelperPluginLoader->ClassLoad() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:700 0,5236 9533048 83. include_once('/home/u04104/goloskarpat.info/html/plugins/company/classes/modules/topic/entity/Topic.entity.class.php') /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:717 0,5236 9533624 84. HelperPluginLoader->Autoloader() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:0 0,5240 9536600 85. HelperPluginLoader->ClassAlias() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:680 0,5240 9536760 86. class_alias() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:752 0,5240 9537456 87. HelperPluginLoader->Autoloader() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:0 0,5242 9539984 88. HelperPluginLoader->ClassLoad() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:700 0,5247 9543568 89. include_once('/home/u04104/goloskarpat.info/html/plugins/admintopic/classes/modules/topic/entity/Topic.entity.class.php') /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:717 0,5247 9544160 90. HelperPluginLoader->Autoloader() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:0 0,5251 9547120 91. HelperPluginLoader->ClassAlias() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:680 0,5251 9547280 92. class_alias() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:752 0,5251 9547784 93. HelperPluginLoader->Autoloader() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:0 0,5251 9550088 94. Engine->Plugin_GetDelegate() /home/u04104/goloskarpat.info/html/plugins/aceadminpanel/include/adm_helper.php:645 0,5251 9550720 95. Engine->__call() /home/u04104/goloskarpat.info/html/engine/classes/Engine.class.php:0 0,5252 9550720 96. Engine->_CallModule() /home/u04104/goloskarpat.info/html/engine/classes/Engine.class.php:660 0,5252 9550720 97. Engine->GetModule() /home/u04104/goloskarpat.info/html/engine/classes/Engine.class.php:524 0,5252 9550800 98. Engine::GetClassInfo() /home/u04104/goloskarpat.info/html/engine/classes/Engine.class.php:578 0,5252 9552016 99. Engine::GetClassInfo() /home/u04104/goloskarpat.info/html/engine/classes/Engine.class.php:929
Насколько я понял при большом числе «наследственников» (которые обрабатываются рекурсивно) лимит рекурсии вылазит за 100 и выпадает ошибка.
Временное-постоянное решение: убрать\увеличить лимит рекурсии который задается в xdebug:
xdebug.max_nesting_level = 200в php.ini либо отключить xdebug полностью
Более правильное решение (ИМХО) переработать механизм наседования заменив рекурсию на цикл (пока не представляю как сделать )
18 комментариев
Да, это болезнь динамического автонаследования. Статическое наследование смягчит проблему, но не решит ее, если останется автозагрузчик. Боюсь, решается это все только явным подключением файлов классов, чтоб автозагрузчик никак не задействован был.
И, кстати, это интересная иллюстрация к спору о том, что лучше — 100 мелких плагинов с атомарным функционалом или 1 большой со 100 функциями