Yii:
- Yii is a high-performance PHP framework best for developing Web 2.0 applications.
- Yii comes with rich features: MVC, DAO/ActiveRecord, I18N/L10N, caching, authentication and role-based access control, scaffolding, testing, etc. It can reduce your development time significantly.
PHPRPC:
- PHPRPC 是一个轻型的、安全的、跨网际的、跨语言的、跨平台的、跨环境的、跨域的、支持复杂对象传输的、支持引用参数传递的、支持内容输出重定向的、支持分级错误处理的、支持会话的、面向服务的高性能远程过程调用协议。
- 目前该协议的最新版本为 3.0。该版本目前已有以下几种语言的实现:
- ASP,ActionScript,Delphi/C++Builder/Kylix,Java,JavaScript,NET,PHP,Python,Ruby,Perl,Lazarus(Free Pascal)
- 其中 ASP、.NET、Java、Ruby、Python 和 PHP 版本除了提供客户端实现外,还提供了服务器端实现。
HPROSE:
- Hprose (High Performance Remote Object Service Engine) 是一个商业开源的新型轻量级跨语言跨平台的面向对象的高性能远程动态通讯中间件。它支持众多语言,例如 C++, .NET, Java, Delphi, Objective-C, ActionScript, JavaScript, ASP, PHP, Python, Ruby, Perl 等语言,通过 Hprose 可以在这些语言之间实现方便且高效的互通。
- Hprose 易学易用,且功能强大,您只需很短时间的学习,就可以用它方便地构建出跨语言跨平台分布式的电信级应用系统。
如何在Yii中使用Hprose或者PHPRPC呢?我这里简单介绍一下Yii下hprose的应用方法
1、下载hprose的PHP版本,嗯,别看了,是混淆过的,但不影响你使用。
2、将下载后的hprose拷贝到yii项目的/protected/extension/hprose目录下
3、新建一个apicontroller:
我这样的方式是最简单的,将一些actionIndex的方法都公开了,在实际应用中当然不可以这样。不过我这里是测试,当然是无所谓的
访问http://localhost/project/test/ (project是我的项目名称,test是controller, index是action,由于默认action是index,所以我省略了)
浏览器中返回了:
- Fa4{s11"actionIndex"s11"afterAction"s5"hello"s3"sum"}z
由此其实我们也可以基本确认有四个方法可以使用actionIndex,afterAction,hello,sum,这主要是因为我把当前类当成发布对象了。(不主张啊不主张)
4、继续下一步,
- <?php
- include("./protected/extensions/hprose/hproseHttpClient.php");
- $client = new HproseHttpClient("http://localhost/project/test");
- $result = $client->sum(1,2,3,4,5);
- print_r($result);
OK,浏览器输出了15,就这样完成了一个简单的HPROSE应用。
当然我这样的方式太简单了,文档在这里有下载,我就不再画蛇添足的提供了:http://www.hprose.com/documents.php。
因为只是简单的的一些应用,暂时也看不到hprose的性能比phprpc提升了多少。
---------------备注
由于Yii对于大小写敏感,因此在new HproseHttpServer();的时候,Hprose的H不能大写,否则,它会自动寻找HproseHttpServer.php,但由于PHP的hprose的文件中首字母都是小写。因此在new的时候就需要:new hproseHttpServer();