Skip to content

Commit 72ec7d5

Browse files
committed
Prepare v1.0.0 release
1 parent 0b66596 commit 72ec7d5

2 files changed

Lines changed: 95 additions & 7 deletions

File tree

CHANGELOG.md

Lines changed: 85 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,89 @@
11
# Changelog
22

3+
## 1.0.0 (2018-11-07)
4+
5+
* First stable release, now following SemVer!
6+
7+
I'd like to thank [Bergfreunde GmbH](https://www.bergfreunde.de/), a German-based
8+
online retailer for Outdoor Gear & Clothing, for sponsoring large parts of this development! 🎉
9+
Thanks to sponsors like this, who understand the importance of open source
10+
development, I can justify spending time and focus on open source development
11+
instead of traditional paid work.
12+
13+
> Did you know that I offer custom development services and issuing invoices for
14+
sponsorships of releases and for contributions? Contact me (@clue) for details.
15+
16+
* BC break / Feature: Replace `Factory` with simplified `Client` constructor,
17+
add support for optional SOAP options and non-WSDL mode and
18+
respect WSDL type definitions when decoding and support classmap option.
19+
(#31, #32 and #33 by @clue)
20+
21+
```php
22+
// old
23+
$factory = new Factory($loop);
24+
$client = $factory->createClientFromWsdl($wsdl);
25+
26+
// new
27+
$browser = new Browser($loop);
28+
$client = new Client($browser, $wsdl);
29+
```
30+
31+
The `Client` constructor now accepts an array of options. All given options will
32+
be passed through to the underlying `SoapClient`. However, not all options
33+
make sense in this async implementation and as such may not have the desired
34+
effect. See also [`SoapClient`](http://php.net/manual/en/soapclient.soapclient.php)
35+
documentation for more details.
36+
37+
If working in WSDL mode, the `$options` parameter is optional. If working in
38+
non-WSDL mode, the WSDL parameter must be set to `null` and the options
39+
parameter must contain the `location` and `uri` options, where `location` is
40+
the URL of the SOAP server to send the request to, and `uri` is the target
41+
namespace of the SOAP service:
42+
43+
```php
44+
$client = new Client($browser, null, array(
45+
'location' => 'http://example.com',
46+
'uri' => 'http://ping.example.com',
47+
));
48+
```
49+
50+
* BC break: Mark all classes as final and all internal APIs as `@internal`.
51+
(#26 and #37 by @clue)
52+
53+
* Feature: Add new `Client::withLocation()` method.
54+
(#38 by @floriansimon1, @pascal-hofmann and @clue)
55+
56+
The `withLocation(string $location): self` method can be used to
57+
return a new `Client` with the updated location (URI) for all functions.
58+
59+
Note that this is not to be confused with the WSDL file location.
60+
A WSDL file can contain any number of function definitions.
61+
It's very common that all of these functions use the same location definition.
62+
However, technically each function can potentially use a different location.
63+
64+
```php
65+
$client = $client->withLocation('http://example.com/soap');
66+
67+
assert('http://example.com/soap' === $client->getLocation('echo'));
68+
```
69+
70+
As an alternative to this method, you can also set the `location` option
71+
in the `Client` constructor (such as when in non-WSDL mode).
72+
73+
* Feature: Properly handle SOAP error responses, accept HTTP error responses and do not follow any HTTP redirects.
74+
(#35 by @clue)
75+
76+
* Improve documentation and update project homepage,
77+
documentation for HTTP proxy servers,
78+
support timeouts for SOAP requests (HTTP timeout option) and
79+
add cancellation support.
80+
(#25, #29, #30 #34 and #36 by @clue)
81+
82+
* Improve test suite by supporting PHPUnit 6,
83+
optionally skip functional integration tests requiring internet and
84+
test against PHP 7.2 and PHP 7.1 and latest ReactPHP components.
85+
(#24 by @carusogabriel and #27 and #28 by @clue)
86+
387
## 0.2.0 (2017-10-02)
488

589
* Feature: Added the possibility to use local WSDL files
@@ -15,7 +99,7 @@
1599
(#13 by @clue)
16100

17101
* Feature: Forward compatibility with clue/buzz-react v2.0 and upcoming EventLoop
18-
(#9 by floriansimon1 and #19 and #21 by @clue)
102+
(#9 by @floriansimon1 and #19 and #21 by @clue)
19103

20104
* Improve test suite by adding PHPUnit to require-dev and
21105
test PHP 5.3 through PHP 7.0 and HHVM and

README.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# clue/reactphp-soap [![Build Status](https://travis-ci.org/clue/reactphp-soap.svg?branch=master)](https://travis-ci.org/clue/reactphp-soap)
22

3-
Simple, async [SOAP](http://en.wikipedia.org/wiki/SOAP) web service client library,
3+
Simple, async [SOAP](https://en.wikipedia.org/wiki/SOAP) web service client library,
44
built on top of [ReactPHP](https://reactphp.org/).
55

66
Most notably, SOAP is often used for invoking
7-
[Remote procedure calls](http://en.wikipedia.org/wiki/Remote_procedure_call) (RPCs)
7+
[Remote procedure calls](https://en.wikipedia.org/wiki/Remote_procedure_call) (RPCs)
88
in distributed systems.
99
Internally, SOAP messages are encoded as XML and usually sent via HTTP POST requests.
1010
For the most part, SOAP (originally *Simple Object Access protocol*) is a protocol of the past,
@@ -22,11 +22,11 @@ This project provides a *simple* API for invoking *async* RPCs to remote web ser
2222
* **Event-driven core** -
2323
Internally, everything uses event handlers to react to incoming events, such as an incoming RPC result.
2424
* **Lightweight, SOLID design** -
25-
Provides a thin abstraction that is [*just good enough*](http://en.wikipedia.org/wiki/Principle_of_good_enough)
25+
Provides a thin abstraction that is [*just good enough*](https://en.wikipedia.org/wiki/Principle_of_good_enough)
2626
and does not get in your way.
2727
Built on top of tested components instead of re-inventing the wheel.
2828
* **Good test coverage** -
29-
Comes with an automated tests suite and is regularly tested against actual web services in the wild
29+
Comes with an automated tests suite and is regularly tested against actual web services in the wild.
3030

3131
**Table of contents**
3232

@@ -398,10 +398,11 @@ connection may still impose a different timeout value. See also the underlying
398398
The recommended way to install this library is [through Composer](https://getcomposer.org).
399399
[New to Composer?](https://getcomposer.org/doc/00-intro.md)
400400
401+
This project follows [SemVer](https://semver.org/).
401402
This will install the latest supported version:
402403
403404
```bash
404-
$ composer require clue/soap-react:^0.2
405+
$ composer require clue/soap-react:^1.0
405406
```
406407
407408
See also the [CHANGELOG](CHANGELOG.md) for details about version upgrades.
@@ -435,4 +436,7 @@ $ php vendor/bin/phpunit --exclude-group internet
435436

436437
## License
437438

438-
MIT
439+
This project is released under the permissive [MIT license](LICENSE).
440+
441+
> Did you know that I offer custom development services and issuing invoices for
442+
sponsorships of releases and for contributions? Contact me (@clue) for details.

0 commit comments

Comments
 (0)