2010-09-05 40 views

回答

1

的唯一利刃般的语法,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

你的第一个例子是在字符串赋值后缺少';'。 – 2010-09-05 14:05:38

+0

@Russell Dias - 谢谢,我没有发现! – 2010-09-05 14:10:02

+0

我的php很生锈,但不能使用 pqsk 2013-12-08 04:44:56

2

最接近你会发现是在Fat-Free Framework的模板引擎,但它需要你使用花括号。相反,PHP的详细<?php echo $x['y']['z']; ?>或短标签相当于<?=$x['y']['z']?>,无脂肪的用途{@x.y.z}

1

我刚看“剃刀语法”了,它看上去不错足以让ASP.NET。在PHP中,虽然我会应用某种模板框架(我通常使用自己的Smarty)来获得一些漂亮的外观清晰的HTML页面,只需要最少的控制结构和可变的引用。

+3

每当有人说“Smarty”时,我必须发布两个链接:一个用于无脂选择,[Dwoo](http://dwoo.org/) - 另一个用于我自己的超薄引擎,[Outline] (http://outline.mindplay.dk/)...我不只是无耻地在这里插入我自己的引擎 - Smarty是一种恐龙,并且有很多更好的替代PHP的模板... – 2011-03-31 12:23:31

5

有剃刀般的视图引擎Yii框架:

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

这很简单 - 它似乎并没有什么真正的Yii依赖关系,所以我无法想象将很难从Yii中拿出来并在不同的环境中使用它。

请注意,这只是一个Razor风格的模板分析器 - 它将Razor风格的模板编译为普通的香草PHP脚本。它依赖于Yii的实际视图引擎。

6

感谢@ mindplay.dk链接到Yii框架的Razor View Renderer!如果您正在寻找PHP的独立模板引擎,我想分享最近的发现Twighttp://www.twig-project.org/)作为替代方案。这不是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) 

我还在做一些初步的开发&测试这个引擎,我很喜欢它到目前为止!