Я пытаюсь разобрать строку шаблона лезвия в формат php и использовать eval () , чтобы оценить строку как код php
$array = [
'foo' => 'bar',
'bar' => 'foo'
];
$content = '@foreach($array as $value){{$value}}@endforeach';
$blade = Blade::compileString($content);
$php = eval($blade);
Это мой код для тестирования, и он выдает исключение
ParseError: синтаксическая ошибка, неожиданное '<',
ожидающий конец файла </p>
значение $ blade после compileString ()
<?php $__currentLoopData = $array; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $value): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?><?php echo e($value); ?><?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
Что вызывает эту ошибку? Является ли eval () несовместимым с тем, как compileString () анализирует блейд в php?