theiconic / ntlm-soap
PHP Library for consuming SOAP web services using NTLM authentication
v2.3.0
2024-05-03 05:37 UTC
Requires
- php: ^8.0
- ext-soap: *
- guzzlehttp/guzzle: 6.5.8
- symfony/filesystem: ^4.1|^5.0
- symfony/options-resolver: ^4.1|^5.0
Requires (Dev)
- mockery/mockery: ~1.0
- php-coveralls/php-coveralls: ^2.2
- phpunit/phpunit: ^8.4
- spatie/phpunit-watcher: ^1.5
This package is auto-updated.
Last update: 2024-12-06 20:50:51 UTC
README
The purpose of this thin PHP library is to provide an easy and handy way to communicate with SOAP services that are using NTLM authentication protocol.
Example
Using a local WSDL file:
<?php use TheIconic\NtlmSoap\Client\NtlmSoap; use GuzzleHttp\Client; $client = new Client(); $soapClient = new NtlmSoap( $client, null, [ 'username' => 'your-username', 'password' => 'your-password', 'wsdl' => 'path-of-your-local-wsdl-file', 'wsdl_options' => [ 'location' => 'http://my-location.com', 'cache_wsdl' => WSDL_CACHE_NONE, ], ] ); $response = $soapClient->soapMethod([ 'methodParameter' => null, ]);
In order to use a remote WSDL definition, you need a fileystem cache adapter. The client will fetch the WSDL once and store it on your filesystem. Example:
<?php use Symfony\Component\Filesystem\Filesystem; use TheIconic\NtlmSoap\Cache\FilesystemCache; use TheIconic\NtlmSoap\Client\NtlmSoap; use GuzzleHttp\Client; $cacheRootDir = __DIR__.'/cache'; $defaultTtl = 3600; // cache the WSDL files for 1 hour $client = new Client(); $cache = new FilesystemCache(new Filesystem(), $cacheRootDir, $defaultTtl); $soapClient = new NtlmSoap( $client, $cache, [ 'username' => 'your-username', 'password' => 'your-password', 'wsdl' => 'http://myurl.com/remote/wsdl', ] ); $response = $soapClient->soapMethod();