PHPackages                             dcarbone/soap-plus - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. dcarbone/soap-plus

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

dcarbone/soap-plus
==================

PHP SoapClient wrapper class

4.0.0(5mo ago)2450.1k↓40%6Apache-2.0PHPPHP ^8.5CI passing

Since Feb 4Pushed 2mo ago1 watchersCompare

[ Source](https://github.com/dcarbone/soap-plus)[ Packagist](https://packagist.org/packages/dcarbone/soap-plus)[ Docs](https://github.com/dcarbone/soap-plus)[ GitHub Sponsors](https://github.com/dcarbone)[ Fund](https://ko-fi.com/dcarbone)[ RSS](/packages/dcarbone-soap-plus/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (7)Dependencies (1)Versions (31)Used By (0)

soap-plus
=========

[](#soap-plus)

In a nutshell, this class replaces the internal query mechanism used by PHP's [SoapClient](http://www.php.net/manual/en/class.soapclient.php) class. The main reason for this wrapper is to enable consumption of NTLM-authenticated SharePoint SOAP services in a PHP application. This is not a data-mapper, it simply returns data as the normal SoapClient would, but all of the internal querying is handled by the PHP CURL library.

Installation
------------

[](#installation)

This lib is designed to be used with [Composer](https://getcomposer.org), and different versions of PHP will require different versions of this library.

### Version Reference Table

[](#version-reference-table)

PHP VersionsSOAPPlus VersionSupported`~8.5.0``4.x`Yes`>=8.2.0 < 8.5.0``3.x`Yes` true` in your configuration array, every query and result will be stored in an internally array that can be accessed via the methods `getDebugQueries()` and `getDebugResults()`. You may also enable/disable debugging post-construct with `enableDebug()` and `disableDebug()`.

One word of caution on debugging. SOAP results can often be quite large, meaning you could potentially have lots of memory being sucked up for the strings that are saved in the internal array. I would recommend NOT enabling this feature anywhere outside of a dev / local dev environment. I have also provided a `resetDebugValue()` method which will empty the arrays.

**wsdl\_cache\_path**

This option will allow you to specify the directory in which the WSDL cache files will be generated. If no value is passed for this option, [sys\_get\_temp\_dir](http://php.net/manual/en/function.sys-get-temp-dir.php) value is used.

Querying
--------

[](#querying)

The typical mechanism by which PHP's SoapClient expects results is for them to be in an array. Coming from the SharePoint world, where most documentation outlines how to construct queries in XML, this can be a bit tedious. As such, I have provided a simple XML -&gt; array conversion functionality in this library. For example:

**SharePoint Lists GetListItems**

Below is an example XML SOAP query against SharePoint's GetListItems action on the Lists WSDL.

```

  My List Name
  150

              1

                value i don't want

        TRUE
        FALSE

```

Using SoapClientPlus, this is transformed into...

```
array (
  'GetListItems' =>
  array (
    'listName' => 'My List Name',
    'rowLimit' => '150',
    'query' =>
    array (
      'any' => '1value i don\'t want/Value>',
    ),
    'viewFields' =>
    array (
      'any' => '',
    ),
    'queryOptions' =>
    array (
      'any' => 'TRUEFALSE',
    ),
  ),
)
```

... which is then passed into the standard SoapClient's own `__soapCall` method.

**Note** You do not HAVE to use XML, you may pass in an array. It is simply there as some people might find it easier to use. I use PHP's [SimpleXMLElement](http://www.php.net//manual/en/class.simplexmlelement.php) implementation to handle the transformation.

Questions / Comments
--------------------

[](#questions--comments)

As I stated in the buff, I created this library to help ease the pain of SharePoint services consumption in PHP wherein I had to use the NTLM auth mechanism. I am always open to new feature ideas from the community, so if you are using this library and have a suggestion, please let me know. I always enjoy a good challenge :)

###  Health Score

61

—

FairBetter than 99% of packages

Maintenance81

Actively maintained with recent releases

Popularity39

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity91

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 82.6% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~160 days

Recently: every ~303 days

Total

28

Last Release

156d ago

Major Versions

0.8.0 → 1.0.02016-09-13

1.0.0 → 2.0.02022-08-17

2.1.0 → v3.x-dev2025-10-25

3.0.0 → 4.0.02025-12-13

PHP version history (5 changes)0.2.1PHP &gt;=5.3.3

1.0.0PHP &gt;=5.4.0

2.0.0PHP ^8.0

v3.x-devPHP &gt;=8.2

4.0.0PHP ^8.5

### Community

Maintainers

![](https://www.gravatar.com/avatar/385c0c0eae1b51f1e81ee464ff6bfb3cce32589ac252ca68cc3a8aec2e3ada14?d=identicon)[dcarbone](/maintainers/dcarbone)

---

Top Contributors

[![dcarbone](https://avatars.githubusercontent.com/u/1392439?v=4)](https://github.com/dcarbone "dcarbone (90 commits)")[![David-Hoagland](https://avatars.githubusercontent.com/u/95374402?v=4)](https://github.com/David-Hoagland "David-Hoagland (10 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (5 commits)")[![npotier](https://avatars.githubusercontent.com/u/1151094?v=4)](https://github.com/npotier "npotier (4 commits)")

---

Tags

phpsoapsoapclient

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/dcarbone-soap-plus/health.svg)

```
[![Health](https://phpackages.com/badges/dcarbone-soap-plus/health.svg)](https://phpackages.com/packages/dcarbone-soap-plus)
```

###  Alternatives

[imanghafoori/laravel-anypass

A minimal yet powerful package to help you in development.

21421.6k](/packages/imanghafoori-laravel-anypass)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
