Zone-Details abrufen
getZoneDetails()
Das wird aufgerufen, wenn ein Kunde im Storefront eine Domain und den DNS-Manager öffnet. Das wird in der folgenden Datei aufgerufen:
app/Http/Controllers/Storefront/Account/AccountDomainController.php Line 96Parameter
Typ | Name | Beschreibung |
|---|---|---|
IpamRdnsHost | $ipamRdnsHost, | Der DNS-Host |
String | $zoneName | Der Zonenname |
Antwort
ZoneDetails()-Klasse. Siehe Zone erstellen
Die ZoneDetails()-Klasse sollte ein Array von DnsRecordItem() enthalten:
Typ | Name | Beschreibung |
|---|---|---|
mixed | $id | ID des Eintrags, falls vorhanden. Kann null sein. |
string | $type | Der DNS-Typ |
string | $hostname | Der Hostname |
string | $content | Der Inhalt |
Int oder Null | $ttl | Der TTL-Wert |
String oder null | $priority | Die Priorität (nur für MX-Einträge) |
Beispielcode
public function getZoneDetails(IpamRdnsHost $ipamRdnsHost, string $zoneName): ZoneDetails {
$dnsRecords = [];
$zoneName = $this->getZoneName($zoneName, $ipamRdnsHost);
try {
$zoneResponse = $this->_sendRequest($ipamRdnsHost, "zones/{$zoneName}");
$recordsResponse = $this->_sendRequest($ipamRdnsHost, "zones/{$zoneName}/dns_records");
} catch (ClientException $e) {
throw new Exception($this->_getErrorMessage($e));
}
foreach ($recordsResponse->result as $record) {
$dnsRecords[] = new DnsRecordItem(
$record->id,
$record->type,
$record->name,
$record->content,
$record->ttl,
);
}
return new ZoneDetails(
$zoneResponse->result->id,
$zoneResponse->result->name,
null,
$zoneResponse->result->name_servers,
$dnsRecords
);
}Testen
Du kannst diese Funktion testen, indem Du im Storefront ein Ticket erstellst.
War das hilfreich?