TP5.1使用webservice

本文介绍了如何在PHP环境中,利用TP5.1框架开启soap扩展,编写Webservice服务,并通过server.php启动服务。内容包括配置php.ini、创建server.php、SoapDiscovery.class.php以及接口类,同时提供了遇到的分布式集群环境下外部访问问题及解决办法,如修改wsdl中服务地址为外部域名,处理加载外部实体失败和连接错误等问题。
摘要由CSDN通过智能技术生成

第一步:开启soap扩展

php.ini 文件里面 找到 extension=soap 把前面的分号注释

第二步:编写文件

注:所有文件都放到public目录下
1.server.php

<?php
if(file_exists('ThirdOrder.wsdl')){
   
    include("ThirdOrder.php");
    $objSoapServer = new SoapServer("ThirdOrder.wsdl");//ThirdOrder.wsdl是刚创建的wsdl文件
    //$objSoapServer = new SoapServer("server.php?wsdl");//这样也行
    $objSoapServer->setClass("ThirdOrder");//注册ThirdOrder类的所有方法
    $objSoapServer->handle();//处理请求
}else{
   
    include("ThirdOrder.php");
    include("SoapDiscovery.class.php");
    $disc = new SoapDiscovery('ThirdOrder', 'ThirdOrder');//api类文件名,service接口目录
    $res = $disc->getWSDL();
}

2.SoapDiscovery.class.php

链接: https://pan.baidu.com/s/1e8ttN2Bs8DKLCX-hIPRRaQ 提取码: i58j

3.自己的接口类
注:因为写在public下面的文件没有命名空间,所以只能按照TP的入口文件模式来书写,头部载入后,在下面引用app下面的实际业务逻辑类,所有的Db等操作都在里面完成。
runWeb()这个方法是自己根据TP的底层run()方法仿写的,将在后面贴出。

// 加载基础文件
require __DIR__ . '/../thinkphp/base.php';

// 支持事先使用静态方法设置Request对象和Config对象

// 执行应用并响应
\think\Container::get('app')->runWeb();

use app\api\controller\Order;

class ThirdOrder
{
   
    protected $order
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值