Я создаю собственный анализатор шаблонов и хочу компилировать содержимое шаблона в код php с помощью {php xxx}
синтаксиса шаблона.
я пытаюсь использовать
preg_replace('/{php\s+([^}]+)*}/', '<?php $1?>', '{php echo 'a' }');
это может быть работа с одной строкой на {php echo 'a' }
до <?php echo 'a' ?>
и затем изменение поддержки шаблона с многострочным
$content = "
{php print_r([
'foo' => 'bar',
])}
";
echo preg_replace('/{php\s+([^}]+)*}/', '<?php $1?>', $content);
Теперь вопрос заключается в том, как поддержать функцию php в синтаксисе шаблона {php xxx}
.
исходный шаблон содержимого:
{php echo yii\bootstrap\Nav::widget([
'options' => ['class' => 'navbar-nav'],
'items' => array_walk($menu, function($data) {
return yii\helpers\ArrayHelper::remove($data, 'items');
}),
]); }
целевой php код
<?php echo yii\bootstrap\Nav::widget([
'options' => ['class' => 'navbar-nav'],
'items' => array_walk($menu, function($data) {
return yii\helpers\ArrayHelper::remove($data, 'items');
}),
]); ?>