phpssrs
Concrete SoapClient subclasses to access all four SQL Server Reporting Services endpoints:, (*1)
See also: Report Server Web Service Endpoints on TechNet, (*2)
Contributors
Originally developed by Chris Kings-Lynne, https://github.com/chriskl/phpssrs, (*3)
Pull requests are very welcome, this project is still rapidly being developed for an internal project. Send your
requests against the dev
branch., (*4)
SSRS Authentication
For this library to work, you will probably need to enable Basic Authentication on your report server. You must typically edit
the C:\Program Files\Microsoft SQL Server\MSRS10_50\Reporting Services\ReportServer\rsreportserver.config
file and add the following:, (*5)
<AuthenticationTypes>
<!-- Existing authentication methods here, eg. NTLM, Kerberos -->
<RSWindowsBasic/>
</AuthenticationTypes>
And then restart Reporting Services., (*6)
Note that basic authentication will send your password in clear text over the network, so only connect
via SSL, or to safe internal report servers., (*7)
Example Usage
<?php
use \PhpSsrs\ReportingService2010\ReportingService2010;
use \PhpSsrs\ReportingService2010\CreateFolder;
// Replace WSDL URL with your URL, or even better a locally saved version of the file.
$rs = new ReportingService2010([
'soap_version' => SOAP_1_2,
'compression' => true,
'exceptions' => true,
'cache_wsdl' => WSDL_CACHE_BOTH,
'keep_alive' => true,
'features' => SOAP_SINGLE_ELEMENT_ARRAYS & SOAP_USE_XSI_ARRAY_TYPE,
'login' => 'DOMAIN\\samaccountname',
'password' => '###########'
], 'http://<ssrs server>/ReportServer/ReportService2010.asmx?wsdl');
$request = new CreateFolder('Test Folder', '/', []);
$response = $this->rs->CreateFolder($request);
Namespaces
The available SOAP clients are:, (*8)
\PhpSsrs\ReportExecutionService\ReportExecutionService
\PhpSsrs\ReportingService2005\ReportingService2005
\PhpSsrs\ReportingService2006\ReportingService2006
\PhpSsrs\ReportingService2010\ReportingService2010