summaryrefslogtreecommitdiffstats
path: root/library
diff options
context:
space:
mode:
Diffstat (limited to 'library')
-rwxr-xr-xlibrary/SSRS/Report.php45
-rwxr-xr-xlibrary/SSRS/Soap/NTLM.php8
2 files changed, 36 insertions, 17 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;
+ }
+
}
diff --git a/library/SSRS/Soap/NTLM.php b/library/SSRS/Soap/NTLM.php
index 7f75db7..077c71e 100755
--- a/library/SSRS/Soap/NTLM.php
+++ b/library/SSRS/Soap/NTLM.php
@@ -13,7 +13,7 @@ class NTLM extends \SoapClient {
protected $_lastResponse;
function __construct($wsdl, $options = array()) {
- if (!array_key_exists('cache_wsdl_path', $options)) {
+ if (empty($options['cache_wsdl_path'])) {
$options['cache_wsdl_path'] = '/tmp/' . md5($wsdl) . '.wsdl';
}
@@ -114,9 +114,9 @@ class NTLM extends \SoapClient {
}
}
- public function __doRequest($data, $url, $action) {
- $this->_lastRequest = (string) $data;
- $this->_lastResponse = $this->callCurl($url, $data, $action);
+ public function __doRequest($request, $location, $action, $version = 1, $one_way = null) {
+ $this->_lastRequest = (string) $request;
+ $this->_lastResponse = $this->callCurl($location, $request, $action);
return $this->_lastResponse;
}