Я пытаюсь использовать KnpMenuBundle с Symfony2 & TWIG.Ошибка 500 на knp_menu_render/«Память исчерпана» в TWIG/Environment.php
В моем шаблоне веточки меню называется так:
<div id="before"></div>
{% set myMenu = knp_menu_get('MyBundle:Builder:myMenu') %}
{#{{dump(seeMenu)}}#}
{{ knp_menu_render(seeMenu) }}
<div id="after"></div>
При попытке отобразить соответствующую страницу, он возвращает ошибку 500, без дальнейших подробностей. Остановка останавливается на линии {{ knp_menu_render(seeMenu) }}
, и ошибка исчезает, когда я удаляю или комментирую эту строку.
Ошибка Apache из-за этой ошибки, я должен перезагрузить ее после каждого неудачного теста рендеринга.
Мой класс Builder кажется ОК, потому что dump(seeMenu)
показывает мне, чего я ожидаю.
Я не добавлял ничего в свой config.yml о knp (поскольку документ говорит, что это опционально). Я все равно пытался, та же проблема.
Я попытался отобразить меню через MopaBootstrapBundle ({{ mopa_bootstrap_menu(seeMenu) }}
), та же проблема.
Firebug не дает больше информации о ошибке 500, и файл dev.log не более полезен.
[EDIT] Apache журнала говорит:
PHP Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 130968 bytes) in /var/www/myproject/app/cache/dev/classes.php on line 3148
Это объясняет крах сервера Apache. Я пытался увеличить память (ini_set('memory_limit', '256M');
в app_dev.php
), но проблема остается, а это значит, что есть бесконечный цикл где-то ...
[EDIT2] После некоторых исследований, кажется, что проблема исходит от строка 348 файла Environment.php: dump(new $cls($this));
генерирует ошибку «исчерпана память».
Я понятия не имею, почему и где искать дальше. Я использую ту же версию прутик (1.20) с той же версией knpMenuBundle (2.0) в другом проекте, и он прекрасно работает ...
[EDIT3] Я все еще не в состоянии сделать эту работу KnpMenuBundle:/Я попытался переустановить весь проект, но ничего не изменил. Я полностью застрял, и я понятия не имею, что теперь делать ..
У вас уже есть ограничение на 256 Мб. Поэтому установка его на 256 Мб не увеличивает его. «это означает, что где-то есть бесконечный цикл» --- нет, это не значит. – zerkms
My Symfony dev bottom bar сказал, что по умолчанию у меня есть только 128Mb. Но после вашего комментария я установил его на 1024 Мб, и проблема остается, мой браузер загружает страницу немного дольше, время для заполнения памяти, я думаю. – Blacksad
«Время заполнить память, я думаю» --- заполнить ее тем, что? – zerkms