Razor синтаксис PHP эквивалент - PullRequest
       8

Razor синтаксис PHP эквивалент

18 голосов
/ 05 сентября 2010

Есть ли эквивалент в новом синтаксисе бритвы ASP.NET в PHP?

Ответы [ 8 ]

7 голосов
/ 15 апреля 2011

Спасибо @ mindplay.dk за ссылку на Razor View Renderer для Yii Framework! Я хотел бы поделиться недавней находкой Twig (http://www.twig -project.org / ) в качестве альтернативы, если вы ищете автономный шаблонизатор для PHP. Это не синтаксис Razor, но он простой и расширяемый .

Вот несколько примеров с сайта:

Для каждого :

{% for user in users %}
  * {{ user.name }}
{% else %}
  No user has been found.
{% endfor %}

Блоки & Наследование :

{% extends "layout.html" %}

{% block content %}
  Content of the page...
{% endblock %}

Фильтры

{{ "now"|date("m/d/Y") }}

{{ "I like %s and %s."|format(foo, "bar") }}
returns: I like foo and bar. (if the foo parameter equals to the foo string)

Я все еще делаю предварительную разработку и тестирование с этим двигателем, и мне он пока нравится!

5 голосов
/ 24 октября 2010

Для фреймворка Yii существует Razor-подобный движок:

http://www.yiiframework.com/extension/razorviewrenderer

Это очень просто - у него нет реальных зависимостей Yii, поэтому яне могу себе представить, что было бы очень трудно извлечь это из Yii и использовать его в другом контексте.

Имейте в виду, это просто анализатор шаблонов в стиле Razor - он компилирует шаблоны в стиле Razor в простойВанильные PHP-скрипты.Это зависит от Yii для фактического view-движка.

3 голосов
/ 07 сентября 2016

Laravel's Blade Template Engine, использует синтаксис, аналогичный Razor. https://laravel.com/docs/master/blade

2 голосов
/ 05 сентября 2010

Ближайший элемент находится внутри Fat-Free Framework * Шаблонный движок , но он требует использования фигурных скобок Вместо многословного PHP <?php echo $x['y']['z']; ?> или эквивалентного короткого тега <?=$x['y']['z']?> Fat-Free использует {@x.y.z}

1 голос
/ 15 июня 2018

Я на самом деле работаю над проектом, который делает именно это! Просто с $ вместо @.

Это называется Фазор для Узла.

Просто установите его npm i phazor -g

<head>
    /* Phazor comments inside html */
    ${
        // Vanilla PHP inside ${ }
        $title = "I love fruit";
        $isFruit = true;
    }

    /* An echo expression */
    <title>$(ucwords($title))</title>
</head>
<body>

    /* Variable expression */
    <h1>$title.</h1>

    /* Inline statement */
    $if ($isFruit) {
        <p>It sure is great!</p>
    }
</body>

Затем запустите phazor sourceFolder destinationFolder, и он скомпилирует все файлы phazor .ph в папку назначения. (Он также может компилировать файлы TypeScript и SASS внутри папки)

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

1 голос
/ 22 сентября 2010

Мне просто нужно посмотреть "Синтаксис Razor", и он кажется достаточно хорошим для ASP.NET. В PHP, однако, я бы применил какой-то шаблонный фреймворк (я обычно использую Smarty сам), чтобы получить несколько хороших чистых HTML-страниц с минимальной структурой управления и ссылками на переменные.

1 голос
/ 05 сентября 2010

Единственный похожий на Razor синтаксис, с которым у PHP есть нечто похожее, это то, что я считаю, называется «расширение переменных»:

$two = "Two";
echo "One $two Three";

Результат:

One Two Three

Но вы не можете использовать это вне блока PHP или вне двойной строки (по крайней мере, не так, как вы хотите его использовать). Это не работает:

<?php
$two = "Two";
?>
<p>One $two Three</p>

Результат:

<p>One $two Three</p>

Другие конструкции программирования PHP вне блоков PHP тоже ничего не делают. Таким образом, ни одна из этих вещей не параллельна в PHP: http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx

0 голосов
/ 20 января 2014

Кажется, кто-то сделал это: https://github.com/steffans/razr

Но я бы все равно перешел на Twig, он гораздо мощнее.

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