radomirradojevic/yii2-wss-soap

Yii2 wrapper for default SoapClient

1.0 2019-05-16 16:24 UTC

README

This extension is wrapper for default SoapClient in PHP.

Installation

The preferred way to install this extension is through composer.

Either run

composer require radomirradojevic/yii2-wss-soap "1.0"

or add

"radomirradojevic/yii2-wss-soap": "1.0"

to the require section of your composer.json.

Usage

You need add this extension in your config file in the 'components' section

'components' => [
    'soapClient' => [
        'class' => \radomirradojevic\soap\SoapClientWrapper::className(),
        'url' => '<SOAP_WSDL_URL>',
        // SoapClient options
        'options' => [
            'cache_wsdl' => WSDL_CACHE_NONE,
            'debug' => true,
        ],
        // SopaClient headers, object or closure
        'headers' => function() {
            $headers = new stdClass();
            $headers->authDetails = new stdClass(); // This is node in SOAP Header where the login and password.
			$headers->authDetails->wss_ns = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd';
            $headers->authDetails->login = '<LOGIN>';
            $headers->authDetails->password = '<PASSWORD>';
            return $headers;
        }
    ],
    ...
]

Now you can use this extension, e.g.:

try {
    $soap = Yii::$app->soapClient;
    $result = $soap->makeSmb(['arg1' => 'foo', 'arg2' => 'bar']);
} catch (SoapClientWrapperException $e) {
    return ['request' => $soap->getLastRequest(), 'response' => $soap->getLastResponse()];
}