Skip to content
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin update demo to use the latest soap client with soap 1.2 support Dec 1, 2017
config update demo to use the latest soap client with soap 1.2 support Dec 1, 2017
metadata demo is ready Sep 27, 2016
src demo is ready Sep 27, 2016
.gitignore demo is ready Sep 27, 2016
.travis.yml run on 7.1 Jan 9, 2019 demo note Jan 9, 2019
composer.json update deps Jan 9, 2019
composer.lock update deps Jan 9, 2019

SOAP Client Example

Build Status

This is an example project on how to use the goetas-webservices/soap-client project.


Steps to use this demo project:

  1. clone this repo
  2. run composer install to get the dependencies
  3. run vendor/bin/soap-client -vvv generate config/config.yml src/Service/Container --dest-class=Service/Container/SoapContainer to generate all the required files
  4. run php bin/demo.php to see a working demo consuming Calculator SOAP webservice
  5. enjoy SOAP again
  6. bonus: notice the code and type hinting by PhpStorm on $client and $result variable :)


Here an explanation of dependencies present in composer.json

  • php this demo is tested on PHP 7.1
  • symfony/var-dumper is optional and is used in this demo ony to color the output on the console
  • goetas-webservices/soap-client this is the main SOAP client dependency
  • php-http/guzzle6-adapter your HTTP client implementation, any php-http client implementation works fine(I have opted for guzzle6, at the moment guzzle, curl, buzz and react clients are supported).
  • php-http/message PSR-7 http message factories, more info are available on
  • guzzlehttp/psr7, my PSR-7 message implementation choice for php-http/message
  • goetas-webservices/wsdl2php (require-dev) this is the main dev dependency, has to be used during development the generate all the necessary information (php classes, jms mappings, wsdl metadata) used in production

Ignored files

Currently src/* and metadata/* are included in .gitignore, I recommend to remove the from the "ignore" file and to commit to your project the generated files by the command executed at step 3.

You can’t perform that action at this time.