public function __construct(ConfigInterface $config, $wsdlUrl)
 {
     $this->config = $config;
     try {
         $this->soapClient = new SoapClient($wsdlUrl, $this->config->getOptionFeatures());
         parent::__construct($wsdlUrl);
     } catch (SoapFault $e) {
         throw new Exception('Unable to load WSDL: ' . $e->getMessage(), $e->getCode(), $e);
     }
 }
 /**
  * @return string Returns the string for the options array
  */
 private function generateServiceOptions()
 {
     $ret = '';
     if (count($this->config->getOptionFeatures()) > 0) {
         $i = 0;
         $ret .= "\n  if (isset(\$options['features']) == false) {\n    \$options['features'] = ";
         foreach ($this->config->getOptionFeatures() as $option) {
             if ($i++ > 0) {
                 $ret .= ' | ';
             }
             $ret .= $option;
         }
         $ret .= ";\n  }" . PHP_EOL;
     }
     if (strlen($this->config->getWsdlCache()) > 0) {
         $ret .= "\n  if (isset(\$options['wsdl_cache']) == false) {\n    \$options['wsdl_cache'] = " . $this->config->getWsdlCache();
         $ret .= ";\n  }" . PHP_EOL;
     }
     if (strlen($this->config->getCompression()) > 0) {
         $ret .= "\n  if (isset(\$options['compression']) == false) {\n    \$options['compression'] = " . $this->config->getCompression();
         $ret .= ";\n  }" . PHP_EOL;
     }
     return $ret;
 }