wsdltophp/packagegenerator

根据 WSDL 生成分层 PHP 类

4.1.13 2024-06-21 04:10 UTC

README

Package Generator 可以从任何 WSDL 生成 PHP SDK。

License Latest Stable Version TeamCity build status Scrutinizer Code Quality Code Coverage Total Downloads StyleCI SymfonyInsight

Package Generator 可以从任何 WSDL 生成 PHP SDK,这样你就可以轻松地使用任何 SOAP Web Service,而无需担心底层的 SOAP 是如何使用的。

Package Generator 提供了许多选项来生成你的包,即使只需要几个。该项目已经在许多 WSDL 上进行了测试,并且目前正在 Providr.IO 平台上使用。

Package Generator 生成的文件在 MANIFEST 中有详细说明。建议您阅读它以了解文件是如何生成的以及为什么生成,以及生成的类应该如何使用。

安装

在项目中

composer require wsdltophp/packagegenerator --dev

使用命令行

$ wget https://phar.wsdltophp.com/wsdltophp-php7.phar
$ chmod +x wsdltophp-php7.phar
$ mv wsdltophp-php7.phar /usr/local/bin/wsdltophp

使用 Docker

$ docker run --rm -it mikaelcom/wsdltophp:tagname

使用方法

有两种方式可以生成你的包(除了在项目中生成和在命令行中生成之外)

  • 独立默认行为):这意味着包将作为一个独立的项目生成,具有自己的 composer.json 文件。生成结束后,生成的包的根目录将包含 composer.jsoncomposer.lock 文件和 vendor 目录。
  • 非独立:这意味着包将作为现有项目的一部分生成,使用其自己的 composer.json 文件。

有关 独立 选项的详细信息,请参阅 独立部分

所有选项的详细信息请参阅 选项页面

在项目中

use WsdlToPhp\PackageGenerator\ConfigurationReader\GeneratorOptions;
use WsdlToPhp\PackageGenerator\Generator\Generator;

// Options definition: the configuration file parameter is optional
$options = GeneratorOptions::instance(/* '/path/file.yml' */);
$options
    ->setOrigin('http://developer.ebay.com/webservices/latest/ebaySvc.wsdl')
    ->setDestination('./MySdk')
    ->setComposerName('myproject/mysdk');
// Generator instantiation
$generator = new Generator($options);
// Package generation
$generator->generatePackage();

使用命令行

命令行如下

$ wsdltophp generate:package \
    --urlorpath="http://developer.ebay.com/webservices/latest/ebaySvc.wsdl" \
    --destination="./MySdk" \
    --composer-name="myproject/mysdk" \
    --force

要查看所有使用的选项,只需移除 --force 参数。

使用 Docker

例如,使用上面的命令行,只需在前面使用 docker run 命令行即可。

$ docker run --rm -it --volume $PWD:/var/www mikaelcom/wsdltophp:tagname generate:package \
    --urlorpath="http://developer.ebay.com/webservices/latest/ebaySvc.wsdl" \
    --destination="/var/www/MySdk" \
    --composer-name="myproject/mysdk" \
    --force

要查看所有使用的选项,只需移除 --force 参数。

版本

4.0

首次发布于 2021 年 4 月 3 日,维护到 6.0 版本发布。请阅读 UPGRADE-4.0 说明,以了解主要变更。

3.0

首次发布于 2018 年 5 月 4 日,维护到 5.0 版本发布。请阅读 UPGRADE-3.0 说明,以了解主要变更。

不再维护:即使 5.0 版本尚未发布且预期也不会很快发布,维护 2 个版本,特别是对于旧版本的 PHP,会消耗大量时间,对于仍然使用它且会遇到最新版本中已解决的问题的用户表示歉意。

2.0

自 2021 年 4 月 3 日起不再维护。

首次发布于 2016 年 4 月 29 日,维护到 4.0 版本发布。

1.0

不再维护

测试

# launch all tests
$ phpunit

# launch a testsuite: command, configuration, utils, model, container, parser, file, packagegenerator
$ phpunit --testsuite=model

使用 Docker 进行测试

感谢 phpfarm 的 Docker 镜像,可以在任何 PHP 版本下使用命令行在本地运行测试。

  • php-7.4

首先,您需要创建容器,您可以使用 docker-compose 在项目的根目录下运行以下命令来创建

$ docker-compose up -d --build

然后您将有一个名为 package_generator 的容器,在容器中您可以运行 composer 命令和 php cli 命令,例如

# install deps in container (using update ensure it does use the composer.lock file if there is any)
$ docker exec -it package_generator php-7.4 /usr/bin/composer update
# run tests in container
$ docker exec -it package_generator php-7.4 -dmemory_limit=-1 vendor/bin/phpunit

贡献

请参阅 CONTRIBUTING 了解详情。此外,代码文档在 doc.wsdltophp.com

鸣谢

在此项目中提供帮助的开发者列在 composer.json 文件中的 Contributor 下,他们是

常见问题解答

如果您有任何问题,请阅读有关生成包可用选项的 选项页面

还有一个 常见问题解答,其中包含有关包生成及其使用的各种问题。

如果您仍然有问题,请随时 创建一个问题

许可

MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件