0

画面の下部にレンダリングする必要がある Web プロファイラー バーは、生成されたコードで同じテンプレート ファイルを読み込もうとして無限ループに陥っているため、「最大関数ネスト レベル '100' に達しました」というエラーをスローしています。

無限ループを引き起こす 2 行のコードを次に示します。

0.5359    7623912  96. __TwigTemplate_12d25e382d980637bca9380c409ddd59->__construct(???) /var/www/site/app/cache/dev/classes.php:7999
0.5359    7624296  97. Twig_Environment->loadTemplate(???, ???) /var/www/site/app/cache/dev/twig/12/d2/5e382d980637bca9380c409ddd59.php:10

ソース コードを確認したところ、同じ Twig テンプレートがコンストラクターに読み込まれているようです。これら 2 つのファイルのソースのスニペットを以下に示します。もっと含める必要があると確信していますが、何を含めればよいかわかりません。

アプリ/キャッシュ/dev/classes.php

public function loadTemplate($name, $index = null)
{
    $cls = $this->getTemplateClass($name, $index);
    if (isset($this->loadedTemplates[$cls])) {
        return $this->loadedTemplates[$cls];
    }
    if (!class_exists($cls, false)) {
        if (false === $cache = $this->getCacheFilename($name)) {
            eval('?>'.$this->compileSource($this->loader->getSource($name), $name));
        } else {
            if (!is_file($cache) || ($this->isAutoReload() && !$this->isTemplateFresh($name, filemtime($cache)))) {
                $this->writeCacheFile($cache, $this->compileSource($this->loader->getSource($name), $name));
            }
            require_once $cache;
        }
    }
    if (!$this->runtimeInitialized) {
        $this->initRuntime();
    }
    return $this->loadedTemplates[$cls] = new $cls($this); // CALLS THE CONSTRUCTOR BELOW
}

アプリ/キャッシュ/dev/twig/12/d2/5e382d980637bca9380c409ddd59.php

public function __construct(Twig_Environment $env)
{
    parent::__construct($env);

    $this->parent = $this->env->loadTemplate("WebProfilerBundle:Profiler:layout.html.twig"); // CALLS THE loadTemplate METHOD ABOVE

    $this->blocks = array(
        'body' => array($this, 'block_body'),
        'panel' => array($this, 'block_panel'),
    );
}
4

2 に答える 2