Можно ли буферизовать вывод $app->run from silex?

Мне было интересно, если можно сохранить вывод, созданный Silex. То, что я хочу достичь, это что-то вроде этого:

<?php
    require('core.php');
    $out = $app->run();
    echo $app['twig']->render('header.html');
    echo $out;
    echo $app['twig']->render('footer.html');

Я хотел бы сделать это таким образом, потому что часть навигации встроена в мои динамические контроллеры и зарегистрирована как глобальная ветка. Я попытался использовать механизм ob_start без буферизации без успеха:

<?php
    require('core.php');
    ob_start();
    $app->run();
    $out = ob_get_contents();
    ob_end_clean();
    echo $app['twig']->render('header.html');
    echo $out;
    echo $app['twig']->render('footer.html');

Есть еще идеи на эту тему?

1 ответ

Решение

Вместо разделения заголовка / основного / нижнего колонтитула и использования глобальных переменных, вы должны использовать уникальный шаблон с наследованием шаблона.

http://twig.sensiolabs.org/doc/templates.html

Другие вопросы по тегам