natlibfi / besimple-soap
Build and consume SOAP and WSDL based web services
Requires
- php: >=8.1
- ext-curl: *
- ext-soap: *
- ass/xmlsecurity: ^1.1.1
- ph-7/just-http-status-codes: ^1.1.7
- zbateson/mail-mime-parser: ^3.0.3
Requires (Dev)
- doctrine/annotations: ^2.0
- friendsofphp/php-cs-fixer: 3.64.0
- mikey179/vfsstream: ~1.0
- phpstan/phpstan: 1.12.7
- squizlabs/php_codesniffer: 3.10.3
- symfony/filesystem: ^5.4.45 || ^6.2.13
- symfony/phpunit-bridge: *
- symfony/process: ^5.4.45 || ^6.2.13
Suggests
- doctrine/annotations: Required for service definition loader
README
Forked from https://github.com/smartboxgroup/BeSimpleSoap.
Build SOAP and WSDL based web services
Components
BeSimpleSoap consists of four components as described below.
BeSimple\SoapClient
The BeSimpleSoapClient is a component that extends the native PHP SoapClient with further features like SwA, MTOM and WS-Security.
Features (only subsets of the linked specs implemented)
- SwA: SOAP Messages with Attachments Spec
- MTOM: SOAP Message Transmission Optimization Mechanism Spec
- WS-Security Spec1, Spec2
- WS-Adressing Spec
Usage
See PHP documentation for more information on how to use the library.
BeSimple\SoapServer
The BeSimpleSoapServer is a component that extends the native PHP SoapServer with further features like SwA, MTOM and WS-Security.
Features (only subsets of the linked specs implemented)
- SwA: SOAP Messages with Attachments Spec
- MTOM: SOAP Message Transmission Optimization Mechanism Spec
- WS-Security Spec1, Spec2
Usage
See PHP documentation for more information on how to use the library.
BeSimple\SoapCommon
The BeSimpleSoapCommon component contains functionality shared by both the server and client implementations.
Features
- Common interfaces for SoapClient and SoapServer input/output processing flow
- MIME parser for SwA and MTOM implementation
- Soap type converters
BeSimple\SoapWsdl
WSDL support classes.
Information for Developers
Makefile contains different commands for running tests e.g. in a Docker container. Examples:
make start
make qa
Running tests locally
Tests that don't require a running server can be run locally with the following command:
COMPOSER_BINARY=/path/to/composer.phar bin/simple-phpunit
To start the servers and run all tests, run the following commands first, then the one above:
src/BeSimple/SoapClient/Tests/bin/axis.sh
src/BeSimple/SoapClient/Tests/bin/phpwebserver.sh