public getServer ( array $configuration, mixed $logger ) : Horde_Kolab_Server_Interface | ||
$configuration | array | The configuration parameters for the server. (@todo: describe parameters) |
$logger | mixed | The logger (@todo: which methods need to be provided?) |
return | Horde_Kolab_Server_Interface | The Horde_Kolab_Server connection. |
public function getServer(array $configuration, $logger)
{
$connection = $this->getConnection($configuration);
if (!isset($configuration['filter'])) {
$server = new Horde_Kolab_Server_Ldap_Standard($connection, $configuration['basedn']);
} else {
$server = new Horde_Kolab_Server_Ldap_Filtered($connection, $configuration['basedn'], $configuration['filter']);
}
if (isset($configuration['map'])) {
$server = new Horde_Kolab_Server_Decorator_Map($server, $configuration['map']);
}
if (isset($configuration['debug']) || isset($configuration['log'])) {
$server = new Horde_Kolab_Server_Decorator_Log($server, $logger);
}
if (isset($configuration['debug']) || isset($configuration['count'])) {
$server = new Horde_Kolab_Server_Decorator_Count($server, $logger);
}
if (!empty($configuration['cleanup'])) {
$server = new Horde_Kolab_Server_Decorator_Clean($server);
}
return $server;
}
/** * Test creating the server object. * * @return NULL */ public function testCreation() { try { $injector = new Horde_Injector(new Horde_Injector_TopLevel()); $config = new stdClass(); $config->driver = 'dummy'; $injector->setInstance('Horde_Kolab_Server_Config', $config); $injector->bindFactory('Horde_Kolab_Server_Structure', 'Horde_Kolab_Server_Factory', 'getStructure'); $injector->bindFactory('Horde_Kolab_Server', 'Horde_Kolab_Server_Factory', 'getServer'); Horde_Kolab_Server_Factory::getServer($injector); $this->assertFail('No error!'); } catch (Horde_Kolab_Server_Exception $e) { $this->assertEquals('Server type definition "Horde_Kolab_Server_Dummy" missing.', $e->getMessage()); } }