Существует ли система шаблонов, подобная Twig, которая использует синтаксис PHP? - PullRequest
0 голосов
/ 18 января 2012

Я хотел бы использовать систему шаблонов, такую ​​как Twig (в частности, функциональность блоков), но в простом PHP.

Например, я нашел http://phpsavant.com/docs/, но кажется, что он не поддерживает блоки или что-то подобное.

Редактировать Я нашел что-то, что, кажется, имеет синтаксис блока с обычным кодом PHP: http://phpti.com/

Ответы [ 5 ]

2 голосов
/ 28 сентября 2012

Язык шаблонов, который вы ищете, называется PHP!

0 голосов
/ 09 ноября 2013

Насколько я понимаю, использование off Blade для представлений необязательно в Laravel.Вы можете использовать имя файла как view.php вместо view.blade.php и использовать обычный старый синтаксис PHP.Единственный улов - у вас не может быть обоих view.php и view.blade.php, так как они оба отвечают на

return View::make('view);
0 голосов
/ 09 ноября 2013

В структуру Laravel включен один элемент, называемый Blade .

Вы можете смешивать простой старый PHP с синтаксисом шаблонов Blade, где {{...}} также переводится в <?=...?> или <?php echo ... ?>

Также есть блоки, которые вы знаете в Twig, но они называются sections.

@section('heading')
    {{ strtoupper("I'm not shouting") }}
@show

<?= strtolower('Shhh!'); ?>

Это находится под пространством имен Illuminate\View - См. На GitHub , и может быть загружено с помощью Composer, поскольку оно также зарегистрировано на Packagist - только в следующем для composer вашего проекта .json.

{
    "require": {
        "illuminate/view": "4.*"
    }
}

На данный момент я не уверен в том, как вы попытаетесь отобразить шаблон из пользовательского проекта. Если я узнаю, я обновлю свой ответ.

0 голосов
/ 15 февраля 2013

PHP является языком шаблонов (да, это так), блоки могут быть реализованы с помощью буферов:

<?php
ob_start();
?>
  this the content of the block for <?= date("Y-m-d") ?>
<?php
$content = ob_get_clean();

, затем в основном макете отобразить содержимое блоков:

echo $head;
echo $content ;
// ....

на самом деле это то, что используют большинство шаблонизаторов.

использование шаблонных библиотек имеет огромные преимущества (кеширование, экранирование по умолчанию и т. д ...)

0 голосов
/ 14 ноября 2012

Symfony (который использует Twig по умолчанию) также имеет систему шаблонов на основе php, которая очень похожа на Twig. Он имеет наследование шаблонов и использует «слоты», которые эквивалентны блокам Twig. Это отдельная библиотека, которую можно использовать за пределами полной платформы Symfony.

http://symfony.com/doc/2.0/cookbook/templating/PHP.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...