Symfony2 と TWIG で KnpMenuBundle を使用しようとしています。
私の小枝テンプレートでは、メニューは次のように呼び出されます。
<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 がクラッシュします。レンダリングのテストに失敗するたびに、Apache を再起動する必要があります。
Builder クラスは問題ないように見えdump(seeMenu)
ます。
knp に関する config.yml には何も追加しませんでした (ドキュメントにはオプションであると書かれています)。とにかく試してみましたが、同じ問題です。
MopaBootstrapBundle ( {{ mopa_bootstrap_menu(seeMenu) }}
) を介してメニューをレンダリングしようとしましたが、同じ問題です。
Firebug は 500 エラーに関する詳細情報を提供しておらず、dev.log ファイルはあまり役に立ちません。
[編集] 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
、問題は残ります。つまり、無限ループがどこかにあるということです...
[編集 2] いくつかの調査の結果、問題はファイルEnvironment.phpの 348 行にあるようです: dump(new $cls($this));
「メモリが枯渇しました」というエラーが生成されます。
なぜ、どこをさらに調べればよいのかわかりません。別のプロジェクトで同じバージョンの TWIG (1.20) と同じバージョンの knpMenuBundle (2.0) を使用していますが、正常に動作します...
[EDIT3] 私はまだこの KnpMenuBundle を機能させることができません:/ プロジェクト全体を再インストールしようとしましたが、何も変わりません。私は完全に立ち往生していて、今何をすべきか見当もつかない..