手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表分类:PHP

在Yii框架中使用Hprose或PHPRPC

Yii:

XML/HTML代码
  1. Yii is a high-performance PHP framework best for developing Web 2.0 applications.  
  2.   
  3. 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:

XML/HTML代码
  1. PHPRPC 是一个轻型的、安全的、跨网际的、跨语言的、跨平台的、跨环境的、跨域的、支持复杂对象传输的、支持引用参数传递的、支持内容输出重定向的、支持分级错误处理的、支持会话的、面向服务的高性能远程过程调用协议。  
  2.   
  3. 目前该协议的最新版本为 3.0。该版本目前已有以下几种语言的实现:  
  4.   
  5.     ASP,ActionScript,Delphi/C++Builder/Kylix,Java,JavaScript,NET,PHP,Python,Ruby,Perl,Lazarus(Free Pascal)  
  6.   
  7. 其中 ASP、.NET、Java、Ruby、Python 和 PHP 版本除了提供客户端实现外,还提供了服务器端实现。  

HPROSE:

XML/HTML代码
  1. Hprose (High Performance Remote Object Service Engine) 是一个商业开源的新型轻量级跨语言跨平台的面向对象的高性能远程动态通讯中间件。它支持众多语言,例如 C++, .NET, Java, Delphi, Objective-C, ActionScript, JavaScript, ASP, PHP, Python, Ruby, Perl 等语言,通过 Hprose 可以在这些语言之间实现方便且高效的互通。  
  2.   
  3. Hprose 易学易用,且功能强大,您只需很短时间的学习,就可以用它方便地构建出跨语言跨平台分布式的电信级应用系统。  

如何在Yii中使用Hprose或者PHPRPC呢?我这里简单介绍一下Yii下hprose的应用方法

 

1、下载hprose的PHP版本,嗯,别看了,是混淆过的,但不影响你使用。

2、将下载后的hprose拷贝到yii项目的/protected/extension/hprose目录下

3、新建一个apicontroller:

大小: 43.99 K
尺寸: 299 x 376
浏览: 2113 次
点击打开新窗口浏览全图

我这样的方式是最简单的,将一些actionIndex的方法都公开了,在实际应用中当然不可以这样。不过我这里是测试,当然是无所谓的

访问http://localhost/project/test/ (project是我的项目名称,test是controller, index是action,由于默认action是index,所以我省略了)

浏览器中返回了:

XML/HTML代码
  1. Fa4{s11"actionIndex"s11"afterAction"s5"hello"s3"sum"}z  

由此其实我们也可以基本确认有四个方法可以使用actionIndex,afterAction,hello,sum,这主要是因为我把当前类当成发布对象了。(不主张啊不主张)

 

4、继续下一步,

PHP代码
  1. <?php
  2. include("./protected/extensions/hprose/hproseHttpClient.php");  
  3. $client = new HproseHttpClient("http://localhost/project/test");  
  4. $result = $client->sum(1,2,3,4,5);  
  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();

Tags: yii, hprose, phprpc

Oauth二三事

这两天在做微博同步,于是对于oauth又重新开始折腾了。其实在之前我也做过类似的笔记,例如这个 关于oauth的几篇文章 ,于是在做这个同步的时候也参考了这些其中的一两篇,比如老王的基于PECL OAuth打造微博应用,但由于我不想加载pecl的oauth库,所以就不能使用了。
于是我就根据官方的SDK进行了处理,但由于需要同时支持两个或更多微博,结果就造成了oauth类的冲突了。而事实上经过测试,还不能加载一个屏蔽一个,因为有些微博对oauth类中的部分做了修改。于是最后我采用了namespace来解决了这个问题。
因为这次我是把weibo的类库做了独立处理,但由于不是每一台服务器都支持5.3的namespace,也在犹豫是不是要重新修正oauth类,但这样之后,官方的SDK我就不能覆盖性的更新了。真纠结呀。
hightman也在重写类似的东西,大家都在重复造轮子,可是怎么办呢?官方万一更新SDK,添加了新接口,我们怎么办,虽然会有一些接口的URL提供我们调用,但总归是直接使用会更方便啦。随便说说而已,目前已经解决,实在吐血的情况下那我就是干脆自己学着新浪他们一样也提供接口。哈哈,做点无耻的事情。。。

Tags: oauth, namespace, weibo, pecl

yii的一些小技巧

笔记。。。
Yii的cache大家用起来可能是比较爽,直接Yii::app()->cache->get,就over了。在这个时候,我们可以配置相应的cache方式,比如数据库,memcache,apc,eacc.....(太长,记不住),等等。但是,怎么样能够让memcache缓存与文本缓存或其他缓存共用呢?

所以,不要纠结于普通的想法。嗯,在main.php的cache数组元素下,建一个同级数组。如:
        'fc' => array(
            'class' => 'CFileCache',
            'directoryLevel'=>1,
        ),
然后在项目中就可以直接Yii::app()->fc->get,或者Set了。是不是很方便 ?

Tags: yii, memcache, filecache, apc

PHP编码规范

这是一份比较老的规范了,不是我写的,事实上现在看起来也并不是特别的完善,但不要忘了,它是几年前的东西。
其实规范这玩意,只是大家用来忽悠的一套玩意,说有用吧,其实每个人的习惯都不一样,强制规范一下,确实很痛苦,但是不规范吧,如果团队中开发的人很多,那就非常痛苦了。

事实上我更希望是通过IDE来进行格式化,但,每个人喜欢的IDE都不一样,这确实很痛苦。很让人郁闷。。。嗯 。我的代码一般是用NetBeans进行格式化的。定义好formatter后,按alt+shift+f格式化。

这几句话不错:

XML/HTML代码
  1. 标准不是项目成功的关键,但可以帮助我们在团队协作中有更高的效率并且更加顺利的完成既定的任务。  
  2. 1. 程序员可以了解任何代码,弄清程序的状况  
  3. 2. 新人可以很快的适应环境  
  4. 3. 防止新接触PHP的人出于节省时间的需要,自创一套风格并养成终生的习惯  
  5. 4. 防止新接触PHP的人一次次的犯同样的错误  
  6. 5. 在一致的环境下,人们可以减少犯错的机会  
  7. 6. 程序员们有了一致的敌人   

上附件 。。。

附件: php编码规范.chm (45.93 K, 下载次数:2075)

Tags: php, 编码规范

XSS 的一些资料

Tags: xss