Я использую 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 и не видел ничего подобного. Можно ли использовать?