宝哥软件园

php中web服务实现的四种简单架构方法和示例

编辑:宝哥软件园 来源:互联网 时间:2021-10-14

1.PHP本身的SOAP所有的网络服务都包括服务器和客户端。要使用php自己的soap,必须首先安装并启用扩展。请看下面的具体代码。首先,这是服务器实现:

复制代码如下:php类测试{ function show() {返回'您请求的数据!';} }函数GetUserInfo($ name){ return ' fbbin ';}//实例化的参数手册显示没有使用wsdl,所以第一个参数为空。如果使用wsdl,第一个参数是这个wsdl文件的地址。$server=new SoapServer(null,数组(' uri'='http://soap/',' location '=' http://localhost/test/server . PHP ');$ server-SetClass(' test ');//$ server-AddFunction(' GetUserInfo ');$ server-handle();

然后是客户。

复制代码如下: $ soap=new soapclient (null,array(' location '=' http://localhost/test/server . PHP ',' uri '=' http://soap/');echo $ soap-show();//get:'您请求的数据!'//echo $ soap-GetUserInfo(' SSS ');

就这么简单。在当时,这只是一个非常简单的例子。事实上,许多通信机制都是这样实现的!////////////////////////////////////////////////////////////////////////////////

二:phprpc首先去官网(http://www.phprpc.org/zh_CN/)下载最新版本的PHPRPC。解压后,会有相关文件。我们将文件(服务器和客户端文件)划分如下:服务器文件:

复制的代码如下: dparams dhparams.php phprpc _ server.php bigint.php compat.php phprpc _ date.php xxtea.php。

客户端文件:

复制的代码如下: client.php bigint.php compat.php date.php xxtea.php。

我们将服务器文件放在服务器文件夹中,然后将客户机文件放在客户机文件夹中,然后在服务器文件夹中创建新文件(server.php)作为服务,然后在客户机中创建新文件(client.php)作为客户机。它们各自的代码如下:服务器端:

复制代码如下:PHP include _ once ' phprpc _ server . PHP ';//加载phprpc文件$ Server=new PHPRPC _ Server();$ server-add(' GetUser ');$ server-SetDebugMode(true);$ server-start();函数getUser() { return '您请求的数据!}客户端:[代码]?PHP include _ once ' phprpc _ client . PHP ';$ Client=new PHPRPC _ Client(' http://127 . 0 . 0 . 1/phpservice/phprpcserver/server . PHP ');$ data=$ client-GetUser();var _ dump($ data);//get:你请求的数据!

在上面提到的wsdl之后,我们将讨论如何生成它。////////////////////////////////////////////////////////////////////////////////

3.开源nusoap首先在网上下载最新版本的NUSOAP,最新版本是0.9.5。解压后会得到一个lib文件夹,将这个文件分别放在服务器和客户端,然后服务器和客户端分别创建server.php和client.php文件作为通讯文件。服务器文件如下:

复制代码如下:PHP ini _ set(' soap . wsdl _ cache _ enabled ',0);//关闭cache require _ once(' lib/nu soap . PHP ');//Load nusoap file $ server=new soap _ server;$ server-configureWSDL(' nusoassp ');//设置服务的名称,并使用wsdl进行通信。如果wsdl不适用,那就更简单了。网上有很多例子:$ server-register ('getuserinfo '、array ('name'=' xsd:string '、email'=' xsd:string ')、array ('return'=' xsd333660)。$ HTTP _ RAW _ POST _ DATA=isset($ HTTP _ RAW _ POST _ DATA)?$ HTTP _ RAW _ POST _ DATA :“”;$服务器服务($ HTTP _ RAW _ POST _ DATA);函数getUserInfo($name,$email) { return '您请求的数据!}

客户端文件如下:

复制代码如下: require _ once(' lib/nu soap . PHP ');$ client=new soap client(' http://localhost/phpservice/nusoap server/server . PHP?wsdl’);$pagram=array('fbbin ','[email protected]');$ string=$ client-call(' GetUserInfo ',$ pagram);//get:你请求的数据!

///////////////////////////////////////////////////////////////////////////////

四:HessianPHPhessian其实我个人认为他不是webservice,只是类似而已。因为它没有webservice的特性。它支持很多语言。现在我们只需要研究Hessianphp的PHP版本。下载最新版本的Hessian PHP,解压后会得到一个src目录,这是我们需要用到的一个核心文件夹。我们把名字改名为HessianPHP,分别放在服务器和客户端,然后分别创建server.php和client.php文件。服务器端:

复制代码如下:PHP include _ once ' HessianPp/HessianServiCe . PHP ';//加载核心文件classtestservice { public function _ _ construct()} { public function add($ numa,$ numb){ return $ numa $ numb;} public function check(){ return“[email protected]”;} } $ test=new TestServiCe();$ hessian=new hessian service($ test,array(' displayInfo '=true));$ hessian-handle();//请注意,这不是在线的$hessian-service(),但版本可能不同。请换一下!看了源代码才知道!

客户端:

复制代码如下:PHP include _ once ' HessianPp/HessianClient . PHP ';$ URL=' http://localhost/phpservice/hessianserver/server . PHP ';$ options=new HessianoOptions();$client=new HessianClient($url,$ options);$num=$client-add(3,5);echo $ num//Get:8;echo $ client-check();//获取:[电子邮件受保护];

以上四种模式是web开发过程中常用的webservice通信模式。使用最多的是Nusoap。个人认为,phprpc其实挺不错的。这一个在性能上基本类似于nusoap,只是phprpc是商业收费的。还有hessianPHP,看似使用java,采用二进制模式传输数据流,但各有千秋。详情请去百度和谷歌。让我们来谈谈生成wsdl文件。Wsdl是我们在webservice上最常用也是相对安全的通信方式。这种文件可以自己写,但似乎写不出来。因此,我们需要一个工具zend studio来生成wsdl文件。接下来,我们将生成一个WSDL文件,file-new-other-web service-WSDL,这样我们就可以创建一个新的WSDL文件,如图所示。

然后我们将修改WSDL文件。曾工作室为我们提供可视化操作。当然,如果你聪明的话,当然可以更改文件代码。其实只有几件事,理解起来也不会太难。

完成这一步后,WSDL文件基本可用,但还有另外两个问题需要注意:如果完成这一步,测试可能会失败,这可能是因为没有绑定,有时需要手动完成。只需右键单击绑定并选择生成绑定内容(即两个大框之间的小框)。第二个需要注意的是php的WSDL缓存。测试时,通常需要关闭WSDL缓存,否则您可能会使用原始的WSDL文件而不是更新的文件。关闭缓存有两种方法,第一种是直接在php.ini中设置soap . wsdl _ cache _ enabled=0;第二,在php文件中添加一条语句,ini _ set(' soap . wsdl _ cache _ enabled ',' 0 ');通过这样做,您可以安全地测试和调用您的服务器程序。就这样,好吧!

更多资讯
游戏推荐
更多+