Hprose PHP 扩展 1.5.4 发布 - 开源中国社区
Float_left Icon_close
Hprose PHP 扩展 1.5.4 发布
andot 2015年05月24日

Hprose PHP 扩展 1.5.4 发布

andot andot 发布于2015年05月24日 收藏 66 评论 12

阿里云高性能云服务器,2折起! >>> >>>  

logo

Hprose 是高性能远程对象服务引擎(High Performance Remote Object Service Engine)的缩写。

    它是一个先进的轻量级的跨语言跨平台面向对象的高性能远程动态通讯中间件。它不仅简单易用,而且功能强大。你只需要稍许的时间去学习,就能用它轻松构建跨语言跨平台的分布式应用系统了。

Hprose 支持众多编程语言,例如:

通过 Hprose,你就可以在这些语言之间方便高效的实现互通了。

    本项目是 Hprose 的 PHP 的 C 语言扩展版本实现。

    特点:

  • 跨语言,跨平台,支持 20 多种常用语言。

  • 高效的序列化和反序列化,本扩展的序列化效率远远超过php内置的序列化和JSON序列化,甚至比Msgpack还要快一倍。

  • 简单易用的无侵入式的RPC,不需要任何IDL,不需要任何特殊方式定义的数据结构。甚至对 PHP 的内置函数都可以直接发布为远程服务。

  • 多协议绑定。除了可以通过 HTTP 发布服务以外,还可以通过TCP,Unix Socket,WebSocket方式来发布服务。

  • 可以以同步或异步方式来发布服务,同样可以以同步或异步方式调用服务。

  • 提供了 Future 异步编程模式支持。

更新内容:

本次更新修正了无法序列化 IteratorAggregate 接口对象的问题。

本扩展只实现了序列化,反序列化和 RPC 抽象层。如果需要 RPC 功能,请搭配 Hprose for PHP 一起使用。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:Hprose PHP 扩展 1.5.4 发布
分享
评论(12)
最新评论
0

引用来自“289293299”的评论

php 5.2版本如果使用
PHP 5.2 只支持序列化,RPC 部分不支持。下个版本的 C 扩展将把 RPC 部分去掉。这样就可以分别为不同的 PHP 版本编写不同的 RPC 实现了。
0
php 5.2版本如果使用
0

引用来自“wuwenbin”的评论

我觉得最好把所有内容用扩展实现下

引用来自“andot”的评论

hprose 网络通讯部分没有用扩展方式实现是因为网络通讯部分依赖其它扩展,而这些扩展中有些不是跨平台的,有些对 PHP 版本要求比较高。而 hprose 核心部分则对其它扩展没有任何依赖,可以跨平台,甚至可以运行于 PHP 5.2 之上。

另外,如果将所有内容都用扩展方式实现,则其依赖的任何一个扩展升级,都将会影响该扩展的正常运行,因此势必要进行频繁的升级,而一个扩展频繁升级对用户来说比升级 PHP 文件要麻烦的多。而且如果包含的内容太多,就难免引入一些的bug,从而会影响整个扩展的稳定性。

综上考虑,因此只将核心部分做成了扩展。

引用来自“wuwenbin”的评论

我之前用的时候还没出扩展。我觉得这样一个库包含两部分对于使用者来说比较麻烦,如果扩展不能全部支持,我更倾向于只使用PHP的版本(使用扩展在性能上提升幅度是否很大不大清楚)。另外,至于依赖的问题,我觉得在扩展里应该可以做相应检查,phalcon不也依赖其它的库。
如果只有扩展版本的话,那对于无法配置扩展的虚拟主机则无法使用,而对于可以配置扩展的服务器,扩展都装上了,再多放几个 PHP 文件,并不是多麻烦的事情吧。况且升级的时候,只升级 PHP 文件,而不用升级扩展,这对于用户是更方便的事情,比升级扩展要方便的多,不是吗?

安装这个核心扩展之后,在效率上确实有很大的提升,对于简单类型数据的调用效能提升为3-5倍,对于复杂数据类型的调用,效能提升在百倍以上。但如果把全部内容都写成扩展,在效能上不会比现在只安装核心扩展再有更多的提升了,因为现在扩展之外的 PHP 代码都是对网络层其它扩展的调用,这部分代码即使写成扩展的形式,对执行效率的影响也是微乎其微的,而且这部分代码如果用 c 来实现的话,是非常复杂的,所以引入bug的可能性更大一些。当然倒是可以考虑用 zephir 语言来重写,之后就可以把所有代码都编译成扩展了,但是效率应该不会比现在更高,只会比现在的速度更慢。
0

引用来自“wuwenbin”的评论

我觉得最好把所有内容用扩展实现下

引用来自“andot”的评论

hprose 网络通讯部分没有用扩展方式实现是因为网络通讯部分依赖其它扩展,而这些扩展中有些不是跨平台的,有些对 PHP 版本要求比较高。而 hprose 核心部分则对其它扩展没有任何依赖,可以跨平台,甚至可以运行于 PHP 5.2 之上。

另外,如果将所有内容都用扩展方式实现,则其依赖的任何一个扩展升级,都将会影响该扩展的正常运行,因此势必要进行频繁的升级,而一个扩展频繁升级对用户来说比升级 PHP 文件要麻烦的多。而且如果包含的内容太多,就难免引入一些的bug,从而会影响整个扩展的稳定性。

综上考虑,因此只将核心部分做成了扩展。
我之前用的时候还没出扩展。我觉得这样一个库包含两部分对于使用者来说比较麻烦,如果扩展不能全部支持,我更倾向于只使用PHP的版本(使用扩展在性能上提升幅度是否很大不大清楚)。另外,至于依赖的问题,我觉得在扩展里应该可以做相应检查,phalcon不也依赖其它的库。
0

引用来自“阿小闻”的评论

好牛的通信中间件!
hi
0

引用来自“wuwenbin”的评论

我觉得最好把所有内容用扩展实现下
hprose 网络通讯部分没有用扩展方式实现是因为网络通讯部分依赖其它扩展,而这些扩展中有些不是跨平台的,有些对 PHP 版本要求比较高。而 hprose 核心部分则对其它扩展没有任何依赖,可以跨平台,甚至可以运行于 PHP 5.2 之上。

另外,如果将所有内容都用扩展方式实现,则其依赖的任何一个扩展升级,都将会影响该扩展的正常运行,因此势必要进行频繁的升级,而一个扩展频繁升级对用户来说比升级 PHP 文件要麻烦的多。而且如果包含的内容太多,就难免引入一些的bug,从而会影响整个扩展的稳定性。

综上考虑,因此只将核心部分做成了扩展。
0
我觉得最好把所有内容用扩展实现下
0

引用来自“海诺者”的评论

看看这个东东,感觉适合咱们
对哦,咱都有什么项目。
0
看看这个东东,感觉适合咱们
0
0
把用户量提起来,有机会用一下,希望不要出什么BUG
0
好牛的通信中间件!
顶部