diff options
author | Arron Woods <aw@chartblocks.com> | 2015-03-02 16:55:55 +0000 |
---|---|---|
committer | Arron Woods <aw@chartblocks.com> | 2015-03-02 16:55:55 +0000 |
commit | e267d21427aee0ab39169933dfbf0b7fbbe5bc4f (patch) | |
tree | 39ab2270729635647424a48e47353bf850f1b73d /library/SSRS/Report.php | |
parent | 8f5607a53e06c6d9567800dfe7e3cb94511634df (diff) | |
download | php-ssrs-1.0.5.zip php-ssrs-1.0.5.tar.gz php-ssrs-1.0.5.tar.bz2 |
Pass cache_wsdl_path down to client construct1.0.5
Diffstat (limited to 'library/SSRS/Report.php')
-rwxr-xr-x | library/SSRS/Report.php | 45 |
1 files changed, 32 insertions, 13 deletions
diff --git a/library/SSRS/Report.php b/library/SSRS/Report.php index 6aff53b..521a5e8 100755 --- a/library/SSRS/Report.php +++ b/library/SSRS/Report.php @@ -30,6 +30,7 @@ class Report { public $servicePath = 'ReportService2010.asmx'; public $executionPath = 'ReportExecution2005.asmx'; + public $options; protected $_baseUri; protected $_username; protected $_passwd; @@ -44,16 +45,28 @@ class Report { * @param string $baseUri * @param array $options */ - public function __construct($baseUri, $options = array()) { + public function __construct($baseUri, array $options = array()) { $this->setBaseUri($baseUri); if (array_key_exists('username', $options)) { $this->setUsername($options['username']); + unset($options['username']); } if (array_key_exists('password', $options)) { $this->setPassword($options['password']); + unset($options['password']); } + + $this->setOptions($options); + } + + public function setOptions(array $options) { + $defaults = array( + 'cache_wsdl_path' => null + ); + + $this->options = array_merge($defaults, $options); } public function setBaseUri($uri) { @@ -94,12 +107,7 @@ class Report { */ public function getSoapExecution($runInit = true) { if ($this->_soapExecution === null) { - $options = array('username' => $this->_username, 'password' => $this->_passwd); - $client = new SoapNTLM($this->_baseUri . '/' . $this->executionPath, $options); - if ($runInit) { - $client->init(); - } - + $client = $this->createNTLMClient($this->executionPath, $runInit); $this->setSoapExecution($client); } @@ -114,12 +122,7 @@ class Report { */ public function getSoapService($runInit = true) { if ($this->_soapService === null) { - $options = array('username' => $this->_username, 'password' => $this->_passwd); - $client = new SoapNTLM($this->_baseUri . '/' . $this->servicePath, $options); - if ($runInit) { - $client->init(); - } - + $client = $this->createNTLMClient($this->servicePath, $runInit); $this->setSoapService($client); } @@ -435,4 +438,20 @@ class Report { return $xml; } + protected function createNTLMClient($path, $runInit) { + $options = array( + 'username' => $this->_username, + 'password' => $this->_passwd, + 'cache_wsdl_path' => $this->options['cache_wsdl_path'] + ); + + $client = new SoapNTLM($this->_baseUri . '/' . $path, $options); + + if ($runInit) { + $client->init(); + } + + return $client; + } + } |