developerforce/Force.com-Toolkit-for-PHP

add SOAP options to base client

Opened this issue · 3 comments

It would be really useful for me to be able to send options to the SoapClient() call in SforceBaseClient::createConnection, especially for wsdl_cache

http://php.net/manual/en/soapclient.soapclient.php

I'm adding a minor commit that implements this feature.

As I try to figure out how to create a pull request, here's an old fashioned patch:

--- SforceBaseClient.php (saved version)
+++ (current document)
@@ -98,17 +98,22 @@
     * Connect method to www.salesforce.com
     *
     * @param string $wsdl   Salesforce.com Partner WSDL
+    * @param object $proxy  (optional) proxy settings with properties host, port,
+    *                       login and password
+    * @param array $soap_options (optional) Additional options to send to the
+    *                       SoapClient constructor. @see
+    *                       http://php.net/manual/en/soapclient.soapclient.php
     */
-   public function createConnection($wsdl, $proxy=null) {
+   public function createConnection($wsdl, $proxy=null, $soap_options=array()) {
        $phpversion = substr(phpversion(), 0, strpos(phpversion(), '-'));

-       $soapClientArray = array (
+       $soapClientArray = array_merge(array (
            'user_agent' => 'salesforce-toolkit-php/'.$this->version,
            'encoding' => 'utf-8',
            'trace' => 1,
            'features' => SOAP_SINGLE_ELEMENT_ARRAYS,
            'compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP
-       );
+       ), $soap_options);

        // We don't need to parse out any subversion suffix - e.g. "-01" since
        // PHP type conversion will ignore it

closing duplicate on pull request:
#21

Thanks for the pull request - makes it super easy to merge the change in!