Является ли вывод разметки из закрытия плохой практикой? - PullRequest
0 голосов
/ 12 апреля 2019

Я использую Kirby CMS и хочу создать повторно используемый фрагмент, который выводит статический контент до и после динамического контента. Я знаком с heredoc и выходными буферами, но я не думаю, что они слишком подходят для моего варианта использования.

У меня есть следующее.

Файл сниппета, test.php:

<span>some markup</span>
<?php $content() ?>
<span>end markup</span>

Основной файл (который включает фрагмент):

<?php
    $title = 'foobar';
?>

<?php snippet('test', ['content' => function () use ($title) { ?>
    <p>some very <?= $title ?> content</p>
<?php }]) ?>

Для тех, кто не знаком с Кирби, функция snippet() просто включает в себя файл из назначенной папки фрагментов с некоторыми данными, передаваемыми ей. В этом случае я передаю анонимную функцию, которая доступна во фрагменте, как переменную content.

Я получаю следующий вывод без ошибок и предупреждений:

<span>some markup</span>
    <p>some very foobar content</p>
<span>end markup</span>

Так что мой код работает как положено и делает то, что я хочу. У меня вопрос - это хорошая идея для использования в производстве? Есть ли какие-то скрытые предостережения? Я уже давно использую PHP и не видел ничего подобного. Можно ли использовать?

...