zcs-php is a small set of PHP classes to query a Zimbra Collaboration Suite server via the SOAP API interface.
zcs-php classes are released under the terms of GPLv3, see LICENSE.txt
- PSR-0 compatible autoloader
- PHP 5.3
You can file a bug report or file a feature request at:
https://github.com/libersoft/zcs-php/issues
We can provide commercial support and payed features, drop us a line at [email protected]
The zsc-php library is a PSR-0 compatible library which means you can use the autoloading powers of PHP out of the box.
All you need is a framework with a PSR-0 compatible autoloader or any other autoloader that is PSR-0 compatible. The official one for example.
The main class to use is \Zimbra\ZCS\Admin. \Zimbra\ZCS\SoapClient is used to build and send XML SOAP messages. If something goes wrong, a \Zimbra\ZCS\Exception is raised, containing an error message.
Here follows an excerpt of a simple \Zimbra\ZCS\Admin usage:
<?php
// Making sure the Zimbra library can be found
require_once 'autoloader.php'; // The PSR-0 autoloader from https://gist.github.com/221634
$classLoader = new SplClassLoader('Zimbra', realpath(__DIR__.'/zcs-php/src/')); // Point this to the src folder of the zcs-php repo
$classLoader->register();
// Define some constants we're going to use
define('ZIMBRA_LOGIN', 'foo');
define('ZIMBRA_PASS', 'bar');
define('ZIMBRA_SERVER', 'zcs.example.com');
define('ZIMBRA_PORT', '7071');
// Create a new Admin class and authenticate
$zimbra = new \Zimbra\ZCS\Admin(ZIMBRA_SERVER, ZIMBRA_PORT);
$zimbra->auth(ZIMBRA_LOGIN, ZIMBRA_PASS);
// Get all available accounts from a domain
$accounts = $zimbra->getAccounts(array(
'domain' => 'www.example.com',
'offset' => 0,
'limit' => 100
));
// And output them
foreach ($accounts as $account){
echo $account->name . '<br/>';
}