/** * Get the master server object * - we have to allow master server to be optional so that everything keeps working prior to its object having been loaded */ public static function getMaster() { if (!self::$master) { $domain = self::masterDomain(); self::$master = self::getCurrent()->isMaster ? self::getCurrent() : self::selectOne(array('tag' => $domain)); // Give our server a version and put our server on the update queue after we've established the master if (self::$master) { lgDebug('Master obtained', self::$master); // Set the version (just use the first ver object for now while testing) if ($versions = LigminchaGlobalVersion::select()) { self::$current->ref1 = $versions[0]->id; } else { $ver = new LigminchaGlobalVersion('0.0.0'); self::$current->ref1 = $ver->id; } // If this server object was created before we knew this master, we need to send if (self::$deferred) { $server = self::getCurrent(); $server->update(); lgDebug('Server object updated', $server); } } } return self::$master; }