PHP的XML模板引擎扩展 XHP

openkk 12年前
     <p>非死book则低调发布了XHP项目。这是一个多月以来,<strong>继 HipHop之后,非死book推出的又一重要PHP改进项目。看来,在社会化网络市场地位稳固之后,非死book也开始大力回馈技术社区,在口 碑和攒人品方面与Google展开竞争了。</strong></p>    <p>根据Github上项目的文档维基,XHP是一个PHP扩展,通过它,开发人员可以直接在PHP代码中内嵌XML文档片段,作为 合法的PHP表达式。这样,PHP就成为一个更为严格的模板引擎,大大简化了实现可重用组件的工作。</p>    <p>比如这样的简单代码示例:</p>    <pre class="brush:php; toolbar: true; auto-links: false;">?php $href = 'http://www.非死book.com'; echo a href={$href}非死book/a</pre>    <p></p>    <p>注意第三行代码中的语法,其中echo后的不是字符串。</p>    <p>项目负责人非死book工程师Marcel Laverdet则表示,XHP不仅使前端代码更容易理解,还有助于防止跨站脚本攻击。事实上,非死book Lite网站(快速简化版本的非死book)就是完全用XHP写成的。</p>    <p>和上次HipHop发布一样,PHP之父Rasmus Lerdorf也很快做出回应(<a href="/misc/goto?guid=4959498273084951412">英文原文 链接</a>),他说:</p>    <blockquote>     <span style="line-height:16px;font-family:Arial,Helvetica,sans-serif;color:#333333;font-size:13px;">XHP其实就是支持内嵌 XML,这在VB中称为<a href="/misc/goto?guid=4959498273197570060">XML元素文本</a>。 它增加了一个额外的分析步骤,将内嵌的XML元素映射为PHP类。类的语法有些奇怪。至少对我而言,其中主要有意思的地方,是PHP现在理解要输出的 XML了,就可以以上下文敏感的方式进行过滤。</span>    </blockquote>    <p>Lerdorf也指出,XHP存在明显的性能问题,它的XML运行时验证显然会增加开销。为此,非死book不得不使用 APC[Alternative PHP Cache]再加上HipHop。</p>    <p>对此,Marcel Laverdet回复:</p>    <blockquote>     <span style="line-height:16px;font-family:Arial,Helvetica,sans-serif;color:#333333;font-size:13px;">性 能的确是XHP最引人关注的问题。确实,XHP比原始的字符串拼接要慢2到3倍,但是这对大多数程序都不是问题。另外,虽然APC肯定是必需的(大多数网 站都是如此),HipHop则不然。其实Lite网站只是到最近才开始切换到HipHop,之前也表现很不错。在实际应用中,XHP对性能影响并不是很 大。在简洁和性能之间的权衡上,XHP做得不错。</span>    </blockquote>    <p><span style="font-family:Arial,Helvetica,sans-serif;color:#333333;font-size:small;"><span style="line-height:16px;font-size:13px;">此外,</span></span>Wikispaces的创始人James Byers也写到:</p>    <blockquote>     <span style="line-height:16px;font-family:Arial,Helvetica,sans-serif;color:#333333;font-size:13px;">对我来说,XHP比 HipHop有意思得多。它将完全改变模板还是只用PHP的争论。对此我很高兴。PHP应该继续这样改进。</span>    </blockquote>    <p>Tipjoy的联合创始人,现在也在非死book任工程师的Ivan Kirigin也对XHP赞赏有加:</p>    <p><span style="line-height:16px;font-family:Arial,Helvetica,sans-serif;color:#333333;font-size:13px;">XHP是我在 非死book唯一使用的PHP工具,比其他语言类似的东西都好。记号完美代表了对象,不用折腾面向对象编程那些烂东西了,这可是非常罕见的宝贝。<br /> <br /> </span></p>    <p><strong>项目主页:</strong><a href="http://www.open-open.com/lib/view/home/1322967116171" target="_blank">http://www.open-open.com/lib/view/home/1322967116171</a></p>    <p></p>