Horde_Kolab_Server_Factory::getServer PHP Method

getServer() public method

Return the server connection that should be used.
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;
    }

Usage Example

Example #1
0
 /**
  * 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());
     }
 }
All Usage Examples Of Horde_Kolab_Server_Factory::getServer