5 April 2017

Simple PHP SOAP Client

As I need a SOAP client here and there - especially when it comes to web-based projects like monitoring and so on, I created a little SOAP Client in PHP after searching for a simple solution without any additional features. Feel free to use it for whatever:


define('SOAP_URI', 'urn:ENDPOINT'); // SOAP URI - please consider the documentation of your SOAP service to figure this one out
define('SOAP_IP', 'ip or hostname'); // IP/host of the server offering the SOAP service
define('SOAP_PORT', '8080'); // SOAP Port
define('SOAP_USER', 'accountname'); // Username of the account to be used via the SOAP Client
define('SOAP_PASS', 'somepassword'); // password for the account to be used via the SOAP Client


class soap {
  private $soap;
  private $messages = array();

  public function __construct() {
    try {
            $this -> connect();
    catch (Exception $e) {
            $this -> addMessage($e -> getMessage());
    public function connect() {
        $this -> soap = new SoapClient(NULL, array(
            'location'=> 'http://'. SOAP_IP .':'. SOAP_PORT .'/',
            'uri' => SOAP_URI,
            'style' => SOAP_RPC,
            'login' => SOAP_USER,
            'password' => SOAP_PASS,
            'keep_alive' => false
  public function cmd($command) {
    $result = $this -> soap -> executeCommand(new SoapParam($command, 'command'));
    $this -> addMessage($result);
    return true;
  public function addMessage($message) {
    $this -> messages[] = $message;
    return true;
  public function getMessages() {
    return $this -> messages;


//please don't EVER use this example on a productive system

$soap = new soap();