Zend_XmlRpc 使用实例(轻松实现对外接口)

Zend_XmlRpc 使用实例(轻松实现对外接口),第1张

概述Zend_XmlRpc使用实例转载请注明出处,尊重原创:http://blog.csdn.net/a437629292/article/details/41722031 Zend_XmlRpc使用实例转载请注明出处,尊重原创:41722031

1、Zend_XmlRpc介绍

         1. Zend_XmlRpc_Server:

         Zend_XmlRpc_Server 依照 ? www.xmlrpc.com 上的规格描写 实现了1个全功能 XML-RPC 服务器。同时,它还实现了允许批量传输(Boxcarring)的 system.multicall() 方法。

         个人理解,Zend_XmlRpc_Server可以在PHP程序中轻松实现webservice接口的功能,所有对外部的接口都可以在server文件中定义(只添加对外开发的接口),保证接口的安全性和程序的安全性。

         2. Zend_XmlRpc_ClIEnt:

         XML-RPC 服务的功能。主要功能包括在 PHP 和 XML-RPC 之间进行类型的自动转换, 服务代理对象(a server proxy object),和访问服务器的自省功能 (introspection capabilitIEs)。

         个人理解,就是在其他PHP程序中使用之前程序定义的Zend_XmlRpc_Server里的接口时使用,可以轻松调用Zend_XmlRpc_Server里定义的接口。

2、Zend_XmlRpc使用

         首先我们得创建1个sever类,名字自定义。比如:我现在在我的项目Zend_fraemwork创建1个Myserver.PHP文件,如图:

          

         这个Myserver.PHP文件的位置随意你放,只要是在application下(1般我会创建1个webservice文件夹,上图为测试,所以随意放的)。

         Myserver.PHP文件代码以下:

<?PHP

require_once 'Zend/XmlRpc/Server.PHP';

require_once APPliCATION_PATH.'commonsendMail.PHP';//先引入项目下的1个要开发出来的接口类

 

$server = new Zend_XmlRpc_Server();

$server->setClass('sendMail','test');//创建1个命名空间为test,然后把sendMail.PHPsendMail全部类放入Zend_XmlRpc_Server作为对外的接口

echo $server->handle();//输出处理要求结果

         这样就把全部sendMail.PHP 类都加入到了Zend_XmlRpc_Server中,也就是意味着,只要我在其他程序里用Zend_XmlRpc_ClIEnt创建对应客户端实例,就能够用这个实例访问sendMail.PHP类里的所有方法。$server不但可以setClass,还可以addFunction,也就是只加入类里的某个方法。

   看到这里,大家肯定迫不及待想要看看到底如何如其他程序去使用Zend_XmlRpc_ClIEnt来调用sendMail.PHP里的方法了,好的,先看看如何调用吧。

   我新建1个项目名称为:Zend_fraemwork1,然后在default模块下的IndexController里试试用Zend_XmlRpc_ClIEnt来调用了,结构如图:

         

         从图中可以看到,该项目下的common文件夹下根本没有sendMail.PHP文件。且看我如何调用这个邮件发送类的发送方法。代码以下:

$Title="测试";

               $body='<h1>这是1封来自MarkTao的测试PHP邮件发送邮件!</h1><a href="#">请确认</a>';

               $address = '[email protected]';

               try{

                   $clIEnt = newZend_XmlRpc_ClIEnt('http://192.168.1.104/Zend_fraemwork/public/common/Myserver.PHP'); //这是我本机的IP192.168.1.104,两个项目都在本机的站点下。根据url实例化Zend_XmlRpc_ClIEnt对象。

                   $test  = $clIEnt->getProxy('test');//getProxy() 方法接受1个可选参数作为将要代理的远端服务器的命名空间。如果没有指定这个命名空间,默许的命名空间会被代理

                   $test->__call(send,array($Title,$body,$address));//调用__call方法调用sendMail.PHP类里的send方法,发送邮件。array是用来传递参数用的。

               }catch (Zend_XmlRpc_ClIEnt_httpException $ee){

                   $ee->getMessage();

               }

         这样,我们就成功的在项目Zend_fraemwork1中调用了Zend_fraemwork里的sendMail.PHP类里的send方法,实现了邮件发送功能。

3、总结

         总结1下:首先,我们得保证两个项目直接是可以通讯的,也就是说网络是通的;其次,我们得创建好提供外部统1访问的类,如上述的Myserver.PHP;然后我们的在该类中通过Zend_XmlRpc_Server对象把需要的类或方法set或add进去,这样在其他项目里就可以随时使用Zend_XmlRpc_ClIEnt对象进行访问了。

   特别注意的是:在Myserver.PHP类里必须引入:

require_once 'Zend/XmlRpc/Server.PHP';

而在使用Zend_XmlRpc_ClIEnt对象的类里也必须使用:

require_once 'Zend/XmlRpc/ClIEnt.PHP';

         最后,国际惯例,欢迎拍砖!

总结

以上是内存溢出为你收集整理的Zend_XmlRpc 使用实例(轻松实现对外接口)全部内容,希望文章能够帮你解决Zend_XmlRpc 使用实例(轻松实现对外接口)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1019252.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存