Skip to content

Commit

Permalink
Merge branch 'release/3.0.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
mikaelcom committed Feb 22, 2022
2 parents 3fe54fd + 62806f8 commit e5e364f
Show file tree
Hide file tree
Showing 81 changed files with 2,597 additions and 1,899 deletions.
6 changes: 4 additions & 2 deletions .docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
FROM splitbrain/phpfarm:jessie
FROM php:7.4-apache

RUN apt-get update && apt-get install -y wget zip
RUN apt-get update \
&& apt-get install -y libxml2-dev git zip wget \
&& docker-php-ext-install soap

COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
COPY . /var/www/
Expand Down
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# CHANGELOG

## 3.0.0
- PR #1 - Regenerate the whole client
- Update generated classes thanks to PackageGenerator release [4.1.2](https://github.com/WsdlToPhp/PackageGenerator/releases/tag/4.1.2)
- Add PHPStan
- Update code for PHP >= 7.4
- Update badges
- Update generated composer.json settings: contributors, license, type

## 2.0.0
- Update generated classes following WSDL updates
- Update generated classes thanks to PackageGenerator release [3.3.4](https://github.com/WsdlToPhp/PackageGenerator/releases/tag/3.3.4)
Expand Down
14 changes: 5 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/WsdlToPhp/PackageColissimoPostage/badges/quality-score.png?b=develop)](https://scrutinizer-ci.com/g/WsdlToPhp/PackageColissimoPostage/?branch=develop)
[![TeamCity build status](https://teamcity.mikael-delsol.fr/app/rest/builds/buildType:id:PackageColissimoPostage_Build/statusIcon.svg)](https://github.com/WsdlToPhp/PackageColissimoPostage)
[![Latest Stable Version](https://poser.pugx.org/wsdltophp/package-colissimo-postage/v/stable)](https://packagist.org/packages/wsdltophp/package-colissimo-postage)
[![Dependency Status](https://www.versioneye.com/user/projects/56e426e4df573d003a5f5e9f/badge.svg?style=flat)](https://www.versioneye.com/user/projects/56e426e4df573d003a5f5e9f)
[![StyleCI](https://styleci.io/repos/53735115/shield)](https://styleci.io/repos/53735115)
Expand All @@ -24,17 +25,12 @@ $ git clone https://github.com/WsdlToPhp/PackageColissimoPostage.git package-col
$ cd package-colissimo-postage
$ ./generate.sh
```
After generating the package, don't forget to edit the generated [composer.json](composer.json) file in order to update the psr-4 autoloading:
```json
"psr-4": {
"ColissimoPostage\\": "./src/",
"SoapClient\\": "./SoapClient/"
}
```
Then run:

Then run (to get PHPStan):
```bash
$ composer update
```

To learn how to customize the generated package, please read the PackageGenerator's [README](https://github.com/WsdlToPhp/PackageGenerator/blob/master/README.md).

# How to use the generated package?
Expand All @@ -56,4 +52,4 @@ Sample scripts are available under the [samples](samples) folder:
- [GetProductInter](samples/GetProductInter.php)

# Need support or having a question?
We can help you understand how to use it and how to customize it. Feel free to contact us at contact@wsdltophp.com.
We can help you understand how to use it and how to customize it. Feel free to contact us at contact@wsdltophp.com.
17 changes: 11 additions & 6 deletions SoapClient/SoapClient.php
Original file line number Diff line number Diff line change
@@ -1,23 +1,25 @@
<?php

declare(strict_types=1);

namespace SoapClient;

/**
* This class can be overridden at your will.
* Its only purpose is to show you how you can use your own SoapClient client.
*/
class SoapClient extends \SoapClient
final class SoapClient extends \SoapClient
{
/**
* Final XML request
* @var string
* @var string|null
*/
public $lastRequest;
public ?string $lastRequest = null;

/**
* @see SoapClient::__doRequest()
*/
public function __doRequest($request, $location, $action, $version, $oneWay = null)
public function __doRequest($request, $location, $action, $version, $oneWay = null): ?string
{
/**
* Colissimo does not support type definition
Expand All @@ -30,6 +32,9 @@ public function __doRequest($request, $location, $action, $version, $oneWay = nu
* Colissimo returns headers and boundary parts
*/
$response = parent::__doRequest($this->lastRequest = $request, $location, $action, $version, $oneWay);
if (empty($response)) {
return $response;
}
/**
* So we only keep the XML envelope
*/
Expand All @@ -39,9 +44,9 @@ public function __doRequest($request, $location, $action, $version, $oneWay = nu
/**
* Override it in order to return the final XML Request
* @see SoapClient::__getLastRequest()
* @return string
* @return string|null
*/
public function __getLastRequest()
public function __getLastRequest(): ?string
{
return $this->lastRequest;
}
Expand Down
12 changes: 8 additions & 4 deletions SoapClient/SoapClientBase.php
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
<?php

declare(strict_types=1);

namespace SoapClient;

use WsdlToPhp\PackageBase\AbstractSoapClientBase;
Expand All @@ -17,13 +19,15 @@ class SoapClientBase extends AbstractSoapClientBase
/**
* @var string
*/
const DEFAULT_SOAP_CLIENT_CLASS = '\SoapClient\SoapClient';
const DEFAULT_SOAP_CLIENT_CLASS = SoapClient::class;

/**
* @see \WsdlToPhp\PackageBase\AbstractSoapClientBase::getSoapClientClassName()
* @param string|null $soapClientClassName
* @return string
* @see \WsdlToPhp\PackageBase\AbstractSoapClientBase::getSoapClientClassName()
*/
public function getSoapClientClassName($soapClientClassName = null)
public function getSoapClientClassName(?string $soapClientClassName = null): string
{
return parent::getSoapClientClassName(static::DEFAULT_SOAP_CLIENT_CLASS);
}
}
}
30 changes: 26 additions & 4 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,37 @@
"name": "wsdltophp/package-colissimo-postage",
"description": "Package generated from https://ws.colissimo.fr/sls-ws/SlsServiceWS?wsdl using wsdltophp/packagegenerator",
"require": {
"php": ">=5.3.3",
"ext-soap": "*",
"php": ">=7.4",
"ext-dom": "*",
"ext-mbstring": "*",
"wsdltophp/packagebase": "~2.0"
"ext-soap": "*",
"wsdltophp/packagebase": "~5.0"
},
"autoload": {
"psr-4": {
"ColissimoPostage\\": "./src/",
"ColissimoPostage\\": "./src/ColissimoPostage",
"SoapClient\\": "./SoapClient/"
}
},
"type": "library",
"license": "MIT",
"authors": [
{
"name": "Mikael DELSOL",
"email": "contact@wsdltophp.com",
"homepage": "https://www.wsdltophp.com",
"role": "owner"
},
{
"name": "Maxime Veber",
"email": "nek.dev@gmail.com",
"role": "Contributor"
}
],
"require-dev": {
"phpstan/phpstan": "^1.4"
},
"scripts": {
"phpstan": "vendor/bin/phpstan analyze src --level=3"
}
}
30 changes: 26 additions & 4 deletions generate.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,22 +14,44 @@ rm -rf $DEST/src/ \
$DEST/composer.lock;

# package informations
php-7.3 wsdltophp.phar generate:package \
php wsdltophp.phar generate:package \
--urlorpath="https://ws.colissimo.fr/sls-ws/SlsServiceWS?wsdl" \
--destination=$DEST \
--composer-name="wsdltophp/package-colissimo-postage" \
--composer-settings="type:library" \
--composer-settings="license:MIT" \
--composer-settings="authors.0.name:Mikael DELSOL" \
--composer-settings="authors.0.email:contact@wsdltophp.com" \
--composer-settings="authors.0.homepage:https://www.wsdltophp.com" \
--composer-settings="authors.0.role:owner" \
--composer-settings="authors.1.name:Maxime Veber" \
--composer-settings="authors.1.email:nek.dev@gmail.com" \
--composer-settings="authors.1.role:Contributor" \
--composer-settings="autoload.psr-4.SoapClient\:./SoapClient/" \
--composer-settings="require.require-dev.phpstan/phpstan:^1.4" \
--composer-settings="scripts.phpstan:vendor/bin/phpstan analyze src --level=3" \
--addcomments="author:WsdlToPhp <contact@wsdltophp.com>" \
--soapclient="\SoapClient\SoapClientBase" \
--soapclient="SoapClient\SoapClientBase" \
--namespace="ColissimoPostage";

# generate package
php-7.3 wsdltophp.phar generate:package \
php wsdltophp.phar generate:package \
--urlorpath="https://ws.colissimo.fr/sls-ws/SlsServiceWS?wsdl" \
--destination=$DEST \
--composer-name="wsdltophp/package-colissimo-postage" \
--composer-settings="type:library" \
--composer-settings="license:MIT" \
--composer-settings="authors.0.name:Mikael DELSOL" \
--composer-settings="authors.0.email:contact@wsdltophp.com" \
--composer-settings="authors.0.homepage:https://www.wsdltophp.com" \
--composer-settings="authors.0.role:owner" \
--composer-settings="authors.1.name:Maxime Veber" \
--composer-settings="authors.1.email:nek.dev@gmail.com" \
--composer-settings="authors.1.role:Contributor" \
--composer-settings="autoload.psr-4.SoapClient\:./SoapClient/" \
--composer-settings="require-dev.phpstan/phpstan:^1.4" \
--composer-settings="scripts.phpstan:vendor/bin/phpstan analyze src --level=3" \
--addcomments="author:WsdlToPhp <contact@wsdltophp.com>" \
--soapclient="\SoapClient\SoapClientBase" \
--soapclient="SoapClient\SoapClientBase" \
--namespace="ColissimoPostage" \
--force;
5 changes: 3 additions & 2 deletions samples/GetProductInter.php
Original file line number Diff line number Diff line change
Expand Up @@ -47,10 +47,11 @@
* Sample call for getProductInter operation/method
*/
if ($result !== false) {
$messages = $result->getReturn()->getMessages();
echo sprintf('Product: %s', implode(',', $result->getReturn()->getProduct())) . PHP_EOL;
echo sprintf('PartnerType: %s', $result->getReturn()->getPartnerType()) . PHP_EOL;
echo sprintf('ReturnTypeChoice: %s', implode(', ', $result->getReturn()->getReturnTypeChoice())) . PHP_EOL;
echo sprintf('Message: %s', array_shift($result->getReturn()->getMessages())->getMessageContent()) . PHP_EOL;
echo sprintf('Message: %s', array_shift($messages)->getMessageContent()) . PHP_EOL;
} else {
print_r($get->getLastError());
echo $get->getLastErrorForMethod(sprintf('%s::Get', Get::class))->getMessage();
}
9 changes: 5 additions & 4 deletions src/ClassMap.php → src/ColissimoPostage/ClassMap.php
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
<?php

declare(strict_types=1);

namespace ColissimoPostage;

/**
* Class which returns the class map definition
* @package
*/
class ClassMap
{
Expand All @@ -13,9 +14,9 @@ class ClassMap
* This array is sent to the \SoapClient when calling the WS
* @return string[]
*/
final public static function get()
final public static function get(): array
{
return array(
return [
'CheckGenerateLabelRequestType' => '\\ColissimoPostage\\StructType\\CheckGenerateLabelRequestType',
'outputFormat' => '\\ColissimoPostage\\StructType\\OutputFormat',
'letter' => '\\ColissimoPostage\\StructType\\Letter',
Expand Down Expand Up @@ -83,6 +84,6 @@ final public static function get()
'bordereauHeader' => '\\ColissimoPostage\\StructType\\BordereauHeader',
'getBordereauByNumber' => '\\ColissimoPostage\\StructType\\GetBordereauByNumber',
'getBordereauByNumberResponse' => '\\ColissimoPostage\\StructType\\GetBordereauByNumberResponse',
);
];
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
<?php

declare(strict_types=1);

namespace ColissimoPostage\ServiceType;

use \SoapClient\SoapClientBase;
use SoapFault;
use SoapClient\SoapClientBase;

/**
* This class stands for Check ServiceType
Expand All @@ -15,20 +18,21 @@ class Check extends SoapClientBase
* Method to call the operation originally named checkGenerateLabel
* @uses SoapClientBase::getSoapClient()
* @uses SoapClientBase::setResult()
* @uses SoapClientBase::getResult()
* @uses SoapClientBase::saveLastError()
* @param \ColissimoPostage\StructType\CheckGenerateLabel $parameters
* @return \ColissimoPostage\StructType\CheckGenerateLabelResponse|bool
*/
public function checkGenerateLabel(\ColissimoPostage\StructType\CheckGenerateLabel $parameters)
{
try {
$this->setResult($this->getSoapClient()->__soapCall('checkGenerateLabel', array(
$this->setResult($resultCheckGenerateLabel = $this->getSoapClient()->__soapCall('checkGenerateLabel', [
$parameters,
), array(), array(), $this->outputHeaders));
return $this->getResult();
} catch (\SoapFault $soapFault) {
], [], [], $this->outputHeaders));

return $resultCheckGenerateLabel;
} catch (SoapFault $soapFault) {
$this->saveLastError(__METHOD__, $soapFault);

return false;
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
<?php

declare(strict_types=1);

namespace ColissimoPostage\ServiceType;

use \SoapClient\SoapClientBase;
use SoapFault;
use SoapClient\SoapClientBase;

/**
* This class stands for Generate ServiceType
Expand All @@ -15,41 +18,43 @@ class Generate extends SoapClientBase
* Method to call the operation originally named generateLabel
* @uses SoapClientBase::getSoapClient()
* @uses SoapClientBase::setResult()
* @uses SoapClientBase::getResult()
* @uses SoapClientBase::saveLastError()
* @param \ColissimoPostage\StructType\GenerateLabel $parameters
* @return \ColissimoPostage\StructType\GenerateLabelResponse|bool
*/
public function generateLabel(\ColissimoPostage\StructType\GenerateLabel $parameters)
{
try {
$this->setResult($this->getSoapClient()->__soapCall('generateLabel', array(
$this->setResult($resultGenerateLabel = $this->getSoapClient()->__soapCall('generateLabel', [
$parameters,
), array(), array(), $this->outputHeaders));
return $this->getResult();
} catch (\SoapFault $soapFault) {
], [], [], $this->outputHeaders));

return $resultGenerateLabel;
} catch (SoapFault $soapFault) {
$this->saveLastError(__METHOD__, $soapFault);

return false;
}
}
/**
* Method to call the operation originally named generateBordereauByParcelsNumbers
* @uses SoapClientBase::getSoapClient()
* @uses SoapClientBase::setResult()
* @uses SoapClientBase::getResult()
* @uses SoapClientBase::saveLastError()
* @param \ColissimoPostage\StructType\GenerateBordereauByParcelsNumbers $parameters
* @return \ColissimoPostage\StructType\GenerateBordereauByParcelsNumbersResponse|bool
*/
public function generateBordereauByParcelsNumbers(\ColissimoPostage\StructType\GenerateBordereauByParcelsNumbers $parameters)
{
try {
$this->setResult($this->getSoapClient()->__soapCall('generateBordereauByParcelsNumbers', array(
$this->setResult($resultGenerateBordereauByParcelsNumbers = $this->getSoapClient()->__soapCall('generateBordereauByParcelsNumbers', [
$parameters,
), array(), array(), $this->outputHeaders));
return $this->getResult();
} catch (\SoapFault $soapFault) {
], [], [], $this->outputHeaders));

return $resultGenerateBordereauByParcelsNumbers;
} catch (SoapFault $soapFault) {
$this->saveLastError(__METHOD__, $soapFault);

return false;
}
}
Expand Down
Loading

0 comments on commit e5e364f

Please sign in to comment.