当前位置:Gxlcms > PHP教程 > 详细介绍PHP开发Web服务的示例代码

详细介绍PHP开发Web服务的示例代码

时间:2021-07-01 10:21:17 帮助过:4人阅读

PHP开发Web服务

WSO2 WSF/PHP(WSO2 Web Services Framework/PHP,WSO2 Web服务框架) 是一个PHP扩展,允许用来创建和使用Web服务。它支持SOAP1.1、SOAP1.2、MTOM、Web服务寻址、Web服务安全,也支持REST风格的调用。WSO2 WSF/PHP最新的版本(v2.0.0)刚发布。
下面是一个简短的指南解释了怎样用WSO2 WSF/PHP扩展创建一个简单的计算器服务。
(假设:Apache HTTP服务器已经安装在你的机器上,且你基本熟悉在Apache服务器上运行PHP脚本)

第一步:安装WSO2 WSF/PHP扩展
在Ubuntu下,有下列步骤:

  1. 1. apt-get install php5
  2. 2. apt-get install php5-dev
  3. 3. apt-get libapache2-mod-php5
  4. 3. apt-get install lib
  5. xml
  6. 2
  7. 4. apt-get install libxml2-dev
  8. 5. 下载 WSF/PHP v2.0.0 并解压到一个目录
  9. 6. 在命令行访问该目录,以“root”执行下列命令:
  10. ./configure
  11. make
  12. make install
  13. 7. /etc/init.d/apache2 restart

第二步:编写计算器服务
创建一个名为CalculatorService.php的脚本,且放入Apache HTTP服务器的web root(通常是 /var/www)。

  1. <?php
  2. function calculate($inMessage){
  3. $simplexml = new SimpleXMLElement($inMessage->str);
  4. $operand1 = $simplexml->param1[0];
  5. $operand2 = $simplexml->param2[0];
  6. $operation = $simplexml->param3[0];
  7. if($operation != null)
  8. {
  9. switch($operation)
  10. {
  11. case "add" : $result= $operand1 + $operand2; break;
  12. case "sub" : $result= $operand1 - $operand2; break;
  13. case "mul" : $result= $operand1 * $operand2; break;
  14. case "p" : $result= $operand1 / $operand2; break;
  15. }
  16. }
  17. $response = <<<XML
  18. <result>$result</result>
  19. XML;
  20. $returnMsg = new WSMessage($response);
  21. return $returnMsg;
  22. }
  23. $service = new WSService(array("operations" => array("calculate")));
  24. $service->reply();
  25. ?>

一旦部署后,可以从http://localhost:<port>/CalculatorService.php访问它。

第三步:编写计算器客户端
编写一个客户端,调用此计算器服务,并打印结果。
该脚本命名为CalculatorClient.php,且放入Apache HTTP服务器的web root。
不要忘了改变Apache服务器的端口(即http://www.gxlcms.com/:81/CalculatorService.php)来匹配服务器。

  1. <?php
  2. $requestPayload = <<<XML
  3. <calculate>
  4. <param1>100</param1>
  5. <param2>43</param2>
  6. <param3>add</param3>
  7. </calculate>
  8. XML;
  9. try{
  10. $message = new WSMessage($requestPayload,
  11. array("to" => "http://localhost:81/CalculatorService.php"));
  12. $client = new WSClient();
  13. $response = $client->request($message);
  14. echo "Answer : $response->str";
  15. }
  16. catch (Exception $e){
  17. if ($e instanceof WSFault){
  18. $fault = $e;
  19. printf("Soap Fault received. Code: '%s' .Reason: '%s'/n",
  20. $fault->code, $fault->reason);
  21. }else{
  22. printf("Exception occurred. Message: '%s'/n", $e->getMessage());
  23. }
  24. }
  25. ?>

第四步:访问服务
通过执行CalculatorClient.php访问服务,如下:
/CalculatorService.php">http://localhost:<port>/CalculatorService.php

以上就是详细介绍PHP开发Web服务的示例代码的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行