/**
  * Loads the memcache extension
  */
 public static function loadMemcache()
 {
     $memcache = Services::getConfiguration()->get('memcache');
     if ($memcache === null or !extension_loaded('memcache')) {
         self::getConnection()->getProtocol()->sendLogLine("Cannot use memcache! No configuration found!");
     } elseif (is_array($memcache['servers'])) {
         require_once SDIR . 'lib/system/cache/CacheSource.class.php';
         self::$memcacheObj = new CacheSource();
         // add server
         foreach ($memcache['servers'] as $server) {
             // create needed array
             $arguments = array();
             // get server address
             if (!isset($server['address'])) {
                 throw new Exception("Invalid memcache configuration: address tag is missing!");
             }
             $arguments[] = $server['address'];
             // get port
             if (isset($server['port'])) {
                 $arguments[] = $server['port'];
             }
             // get persistent option
             if (isset($server['persistent'])) {
                 $arguments[] = (bool) intval($server['persistent']);
             }
             // add server
             call_user_func_array(array(self::$memcacheObj, 'addServer'), $arguments);
             // remove temp variables
             unset($arguments);
         }
         // flush old cache (we'll have old resources if the applications was killed)
         self::$memcacheObj->flush();
         // test connection
         self::$memcacheObj->add('SERVICES_VERSION', SERVICES_VERSION);
         if (self::$memcacheObj->get('SERVICES_VERSION') !== false) {
             // add log entry
             self::getConnection()->getProtocol()->sendLogLine("Etablished connection to memcache server!");
         } else {
             // add log entry
             self::getConnection()->getProtocol()->sendLogLine("An error occoured with memcache! I'll disable it ...");
             // disable memcache
             self::$memcacheObj = null;
         }
     }
 }