/** * @param Domain $domain * @return void */ public function setAliasTarget(Domain $domain) { $this->setupAlias(); if ($this === $domain) { return; } if (!$domain->exists()) { return; } if (!$this->library->containsDomain($domain)) { return; } $t = $domain->getAliasTarget(); while ($t != null) { if ($t === $this) { return; } $t = $t->getAliasTarget(); } $this->aliasTarget = $domain; $domain->attachObserver($this); $this->saveAliasChanges(); }