阅读更多

9顶
0踩

编程语言

转载新闻 Facebook发布又一PHP改进项目 XHP

2010-07-19 14:19 by 副主编 just_cool 评论(4) 有3893人浏览

就在Google高调发布业界普遍认为针对Facebook的Buzz的同时,Facebook则低调发布了XHP项目。这是一个多月以来,继 HipHop之后,Facebook推出的又一重要PHP改进项目。看来,在社会化网络市场地位稳固之后,Facebook也开始大力回馈技术社区,在口碑和攒人品方面与Google展开竞争了。

 

根据Github 上项目的文档维基,XHP是一个PHP扩展,通过它,开发人员可以直接在PHP代码中内嵌XML文档片段,作为合法的PHP表达式。这样,PHP 就成为一个更为严格的模板引擎,大大简化了实现可重用组件的工作。

比如这样的简单代码示例:

<?php
rquire "xphsrc/php-lib/init.php";
$href = 'http://www.facebook.com';
echo <a href={$href}>Facebook</a>

注意第三行代码中的语法,其中echo后的不是字符串。

项目负责人Facebook工程师Marcel Laverdet则表示,XHP不仅使前端代码更容易理解,还有助于防止跨站脚本攻击。事实上,Facebook Lite网站(快速简化版本的Facebook)就是完全用XHP写成的。

和上次HipHop发布一样,PHP之父Rasmus Lerdorf也很快做出回应(英文原文 链接),他说:

XHP其实就是支持内嵌XML,这在VB中称为XML元素文本。 它增加了一个额外的分析步骤,将内嵌的XML元素映射为PHP类。类的语法有些奇怪。至少对我而言,其中主要有意思的地方,是PHP现在理解要输出的 XML了,就可以以上下文敏感的方式进行过滤。

 Lerdorf也指出,XHP存在明显的性能问题,它的XML运行时验证显然会增加开销。为此,Facebook不得不使用 APC[Alternative PHP Cache]再加上HipHop。

对此,Marcel Laverdet回复:

性能的确是XHP最引人关注的问题。确实,XHP比原始的字符串拼接要慢2到3倍,但是这对大多数程序都不是问题。另外, 虽然APC肯定是必需的(大多数网站都是如此),HipHop则不然。其实Lite网站只是到最近才开始切换到HipHop,之前也表现很不错。在实际应 用中,XHP对性能影响并不是很大。在简洁和性能之间的权衡上,XHP做得不错。

 此外,Wikispaces的创始人James Byers也写到:

对我来说,XHP比HipHop有意思得多。它将完全改变模板还是只用PHP的争论。对此我很高兴。PHP应该继续这样改 进。

 Tipjoy的联合创始人,现在也在Facebook任工程师的Ivan Kirigin也对XHP赞赏有加:

XHP是我在Facebook唯一使用的PHP工具,比其他语言类似的东西都好。记号完美代表了对象,不用折腾面向对象编 程那些烂东西了,这可是非常罕见的宝贝。
来自: 我想网
9
0
评论 共 4 条 请登录后发表评论
4 楼 dualface 2010-07-20 09:43
汗,挖坟啊。。。。。。
3 楼 store88 2010-07-19 16:41
不用折腾面向对象编 程那些烂东西了

java程序員表示壓力很大
2 楼 Arden 2010-07-19 15:54
这个早就发布了啊
~~
1 楼 cyjleon 2010-07-19 15:39

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 研发-Java诊断工具-Arthas

    研发-Java诊断工具-Arthas

  • Arthas 简单使用

      这里简单记录一下使用Arthas的使用命令,以便自己下次查找使用的时候,方便使用,因为官方的文档,默认使用的 github 的地址下载,所有有时候下载很慢。其它官方文档就很简单,主要是下载的链接不好。 第一步: 下载 及运行 curl -O https://arthas.gitee.io/arthas-boot.jar java -jar arthas-boot.jar 第二步: 通过 w...

  • 使用Arthas来进行JAVA诊断的常用命令

    因为Arthas网站打开速度不快,因此在这做个记录,其官网地址https://alibaba.github.io/arthas/dashboard 其文档是中文的,如果打开速度快的话可以去看看 安装: wget https://alibaba.github.io/arthas/arthas-boot.jar java -jar arthas-boot.jar 打印帮助: java -j...

  • 生产使用arthas查看resources目录下面的文件内容

    有一次想看resources下面的mapper文件内容(代码执行和预期不一致,所以想排查一下是不是打上去的包有问题,没有通过下载jar的方式解压查看),然后想到了使用arthas来弄,这里记录一下怎么个查看法。

  • 1. Arthas的命令

    Arthas 的命令

  • arthas助力线上问题分析-线上实战篇

    文章目录1 前言2 基于heapAnalyzer和arthas的线上性能分析2.1 需求背景2.2 现场保存2.3 heapAnalyzer分析堆栈文件2.4 源码分析2.5 Arthas检测3 问题代码热更新3.1 查看类的classloaderhash3.2 修复代码3.2.1 已有源码的修复3.2.2 没有源码的修复3.3 热更新覆盖3.4 热更新注意点3.5 热更新总结4 springboot程序监控5 修改spring的cron调度时间5.1 需求背景5.2 模拟代码5.3 具体操作6 实例代码

  • 持久层框架--mybatis

    持久层框架 所有的持久层框架 1.jdbc--都做了封装 2.Sql--有的做了封装 封装了一半的就是半自动框架。 两样都封装了就是全自动框架。   前身是ibatis 、开源。   轻量级框架。 1.Xml a) 数据库配置文件 b) 接口、实体、sql语句之间的配置关系。 2.Java类、接口 SqlSessionFactory SqlSession:封装jdb

  • 查看android.jar中的xml文件

    在   SDK所在文件夹\platforms\android-版本\data\res\layout 中可直接查看 如  D:\Sun\androidSDK\platforms\android-11\data\res\layout   文件夹

  • 强烈推荐,提高开发效率的IDEA插件

    他山之石,可以攻玉”,当你不知道如何优雅地给变量命名时,可以 使用命名工具,快速搜索大型项目中的变量命名,看其他大型项目源 码是如何命名的,哪些变量名的使用频率高。tt:方法执行数据的时空隧道,记录下指定方法每次调用的入参和返回信息,并能对这些不同的时间下调用进行观测(可以重新触发,周期触发,唯一缺点对于ThreadLocal 信息丢失[隐含参数]、引用对象数据变更无效)watch:能方便的观察到指定方法的调用情况,返回值、抛出异常、入参(特殊值、异常没有捕获排查)logger:动态更新日志等级。

  • 如何使用Arthas查看类变量值

    如何使用Arthas查看类变量值

  • Arthas

    Arthas

  • 牛叉了-arthas 热更新 mybatis mapper xml

    测试环境能够热更新class 能否热更新mapper xml? arthas 群有同学提了这样的一个需求,必须满足满足 arthas-idea-plugin 2.8 版本 https://plugins.jetbrains.com/plugin/13581-arthas-idea 1、基本思路 1.1 流程图 1.2 实现效果 echo `redis-cli -h '127.0.0.1' -p 6379 get arthasIdeaPluginRedefineCacheKey_e00b5a9e-d9

  • 改造Arthas实现容器在线诊断工具(2)

    紧接着上一篇继续改造Arthas (3)禁用高危命令 Arthas提供了丰富的命令,但由于公司安全规定,有些高级且有风险的命令需要禁止不能使用,比如热更新、加载代码等命令 在arthas-core模块com.taobao.arthas.core.command.BuiltinCommandPack类中,初始化了内置提供的所有命令类 可以注意到入参为disabledCommands数组,该数组就是定义不能使用的命令列表,不加入到最终的命令数组commands中 这个disabledC.

  • arthas常用命令

    文档 Arthas 用户文档 启动 wget https://alibaba.github.io/arthas/arthas-boot.jar java -jar arthas-boot.jar 命令 dashboard 查看当前java进程的实时数据面板 dashboard thread 查看当前线程信息 thread classloader 类加载器信息 按类加载类型查看统计信息 cla...

  • 怎么查看服务器上的xml文件,获取服务器的xml文件并解析

    搜索热词获取服务器上的文件,在开发过程中应该是不陌生的一中操作,可以说是频繁的不能在频繁了,我使用的是Android应用去获取服务器上的文件,这里我也就是将这些代码保存在这,方便以后忘记的时候,回头还有得看,里面的命名是自己随便弄的,英语不好,不知道写什么。下面用代码说话还是比较实在实现效果图:获取网络数据,这里用的HttpClient方式来请求网络数据,public class RequestD...

  • Arthas常见配置和命令

    常见配置 1. 结果、参数以json的方式输出 执行命令 : options json-format true 2. 开启执行结果存日志功能(默认是关闭的) 执行命令: options save-result true 3. 把监控的类dum出class文件,然后通过反编译文件进行查看 执行命令: options dump true 表达式核心变量 无论是匹配表达式也好、观察表达式也罢,他们核心判断变量都是围绕着一个 Arthas 中的通用通知对象Advice进行。 ...

  • alibaba arths 源码流程图

  • arthas使用分享

    文章目录准备启动Demo进入arthas控制台基础命令jvm相关class/classloader相关monitor/watch/trace相关options管道后台异步任务Web Console其他特性 准备 此文章目的不是为了解释什么,就是为了以后使用命令的时候有一个直观的感受 https://github.com/alibaba/arthas https://alibaba.github.i...

  • Arthas - Java 线上问题定位处理的终极利器

    前言 在使用 Arthas 之前,当遇到 Java 线上问题时,如 CPU 飙升、负载突高、内存溢出等问题,你需要查命令,查网络,然后 jps、jstack、jmap、jhat、jstat、hprof 等一通操作。最终焦头烂额,还不一定能查出问题所在。而现在,大多数的常见问题你都可以使用 Arthas 轻松定位,迅速解决,及时止损,准时下班。 1、Arthas 介绍 Arthas 是 Alib...

  • 【Arthas】命令之ognl使用姿势

    文章目录Althas中的OGNL使用姿势参数说明使用示例1.调用静态属性2.调用静态方法3.读取不同类型的值Ognl 常用用法说明`#`变量引用 `#this` 当前对象调用构造方法参考资料 Althas中的OGNL使用姿势 从3.0.5版本增加 Althas支持ognl的格式 参数说明 参数名称 参数说明 express 执行的表达式 [c:] 执行表达式的 ClassL...

Global site tag (gtag.js) - Google Analytics