function getOperations($portName = '', $bindingType = 'soap')
    {
        $ops = [];
        if ($bindingType == 'soap') {
            $bindingType = 'http://schemas.xmlsoap.org/wsdl/soap/';
        } elseif ($bindingType == 'soap12') {
            $bindingType = 'http://schemas.xmlsoap.org/wsdl/soap12/';
        } else {
            $this->debug("getOperations bindingType $bindingType may not be supported");
        }
        $this->debug("getOperations for port '$portName' bindingType $bindingType");
        // loop thru ports
        foreach ($this->ports as $port => $portData) {
            $this->debug("getOperations checking port $port bindingType " . $portData['bindingType']);
            if ($portName == '' || $port == $portName) {
                // binding type of port matches parameter
                if ($portData['bindingType'] == $bindingType) {
                    $this->debug("getOperations found port $port bindingType $bindingType");
                    //$this->debug("port data: " . $this->varDump($portData));
                    //$this->debug("bindings: " . $this->varDump($this->bindings[ $portData['binding'] ]));
                    // merge bindings
                    if (isset($this->bindings[$portData['binding']]['operations'])) {
                        $ops = array_merge($ops, $this->bindings[$portData['binding']]['operations']);
                    }
                }
            }
        }
        if (count($ops) == 0) {
            $this->debug("getOperations found no operations for port '$portName' bindingType $bindingType");
        }

        return $ops;
    }