Exemplo n.º 1
0
 /**
  * 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;
 }