adeotek/php-wsdl

此包已被废弃且不再维护。未建议替代包。

PHP SOAP WSDL 生成器和服务器

v1.0.0 2018-06-28 11:59 UTC

This package is not auto-updated.

Last update: 2022-07-23 18:00:07 UTC


README

从 PHP 注释或程序化生成 WSDL,并可选地创建 SOAP WSDL 服务器。

本项目基于 Andreas Zimmermann 的 PHP WSDL 生成器

描述

此库提供 WSDL XML 生成和运行 PHP SOAP 服务器(带或不带 WSDL 支持)的支持。功能

  • 从 PHP 注释中提取 WSDL 定义
  • 优化 WSDL XML(删除换行符和制表符)
  • 创建带或不带 WSDL 支持的 SOAP 服务器(PHP SoapServer)
  • 支持“简单”的复杂类型和一维数组
  • 如果未提供,将自动确定 SOAP 端点 URI
  • 为一个或多个 PHP 源文件生成 WSDL 定义
  • 使用 http Auth 登录以使用 Web 服务

系统要求

  • PHP 7.1+
  • PHP SOAP 扩展

安装

Composer

将 PHP-WSDL 仓库添加到您的 composer.json 文件

"repositories": [
    {
        "type": "git",
        "url": "https://github.com/adeotek/php-wsdl.git"
    }
],

添加库

$ composer require adeotek/php-wsdl

或将其添加到您的 composer.json 文件

"require": {
    "adeotek/php-wsdl": "~1.0.0"
}

手动

要手动安装库,只需将 src 目录的内容复制到您的项目中即可。

如何使用 PhpWsdl

###类描述

  • AdeoTEK\PhpWsdl\SoapServer
    • SOAP 服务器类(使用 PHP SoapServer 类)
  • AdeoTEK\PhpWsdl\Generator
    • 负责 WSDL 生成的类
  • AdeoTEK\PhpWsdl\BaseObject
    • 由所有解析结果对象实现的抽象类
  • AdeoTEK\PhpWsdl\Element
    • 复杂类型元素(属性)对象
  • AdeoTEK\PhpWsdl\Parameter
    • 从解析结果得到的参数和返回类型对象
  • AdeoTEK\PhpWsdl\ComplexType
    • 从解析得到的复杂类型对象(数组或类)
  • AdeoTEK\PhpWsdl\Method
    • 从解析得到的对象
  • AdeoTEK\PhpWsdl\Parser
    • 负责解析 PHP 源代码的类
  • AdeoTEK\PhpWsdl\Formatter
    • 用于 XML 格式的辅助类
  • AdeoTEK\PhpWsdl\Debugger
    • 用于调试的类

###解析器处理的用于生成 WSDL 定义的键词

  • @pw_complex
    • 复杂类型(数组/类)
  • @pw_element
    • 复杂类型属性/元素
  • @param
    • 方法参数
  • @return
    • 方法返回类型

可以为复杂类型及其属性提供键值选项。选项使用 @pw_set 关键字定义,并必须放在目标元素之前。

###用法

  • 简单用法示例(SoapServer)
$soapServer = new AdeoTEK\PhpWsdl\SoapServer([
    'className'=>'\Some\Class',
    'serviceUri'=>'service_uri',
    'wsdlConfig'=>[
        'optimize'=>TRUE,
        'includeDesc'=>FALSE,
        'srcFiles'=>[
            'path/OtherClass.php',
            'path/sourceFile.php'
        ],
    ],
]);
$soapServer->runServer();
		
$debugMessages = AdeoTEK\PhpWsdl\Debugger::getMessages();

许可协议

PhpWsdl 默认使用 GPL (v3 或更高版本) 许可。请参阅 LICENSE 文件以获取完整的 GPLv3 许可协议文本。

本程序是免费软件;您可以在自由软件基金会发布的 GNU 通用公共许可证的条款下重新分发和/或修改它;可以是许可证的第 3 版,也可以是(根据您的选择)任何更高版本。

本程序的分发是希望它将是有用的,但没有任何保证;甚至没有关于其商销性或适用于特定目的的暗示性保证。有关详细信息,请参阅 GNU 通用公共许可证。

您应该已经随本程序一起收到 GNU 通用公共许可证的副本;如果没有,请参阅 https://gnu.ac.cn/licenses/