PHP code example of kasperhartwich / quickdns

1. Go to this page and download the library: Download kasperhartwich/quickdns library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

kasperhartwich / quickdns example snippets


use QuickDns\QuickDns;

$quickDns = new QuickDns('[email protected]', 'password');
$quickDns->login();              // optional: fails here rather than later
$quickDns->isLoggedIn();         // true

$quickDns = new QuickDns('[email protected]', 'password', new \GuzzleHttp\Client(['handler' => $stack]));

use QuickDns\Zone;

foreach ($quickDns->getZones() as $zone) {
    echo $zone->domain, ': ', implode(', ', $zone->templates), PHP_EOL;
}

// Create a zone. create() returns it with its id, so it can be used right away.
$zone = (new Zone($quickDns, 'example.dk'))->create();
$zone->delete();

// Or look a zone up by domain.
$quickDns->getZone('example.dk')->delete();

foreach ($quickDns->getZone('example.dk')->getRecords() as $record) {
    echo $record->name, ' ', $record->type, ' ', $record->value, PHP_EOL;  // @ MX mx1.example.dk.
}

use QuickDns\RecordSet;
use QuickDns\RecordType;

$zone = $quickDns->getZone('example.dk');

$zone->edit(function (RecordSet $records) {
    $records->add('www', 'A', '192.0.2.10', ttl: 3600);
    $records->add('@', RecordType::MX, 'mx1.example.dk.', ttl: 3600, priority: 10);

    $spf = $records->sole(name: '@', type: RecordType::TXT);
    $records->replace($spf, $spf->withValue('v=spf1 

$record = $zone->addRecord('www', 'A', '192.0.2.10', ttl: 3600);
$zone->replaceRecord($record, $record->withValue('192.0.2.11'));
$zone->deleteRecord($record);

$template = $quickDns->getTemplate('my-template');
$group = $quickDns->getGroup('my-group');

$zone = $quickDns->getZone('example.dk');
$zone = $template->addZone($zone);      // keeps the zone's other templates
$zone = $group->addZone($zone);

$zone = $template->removeZone($zone);   // takes off only this one
$zone = $group->removeZone($zone);

$quickDns->setTemplates($zone, ['my-template', 'another']);
$quickDns->setTemplates($zone, []);              // removes them all
$quickDns->setGroups($zone, ['my-group']);

$template = $quickDns->getTemplate('my-template');

foreach ($template->getRecords() as $record) {
    echo $record->name, ' ', $record->type, ' ', $record->value, PHP_EOL;
}

$template->edit(function (RecordSet $records) {
    $records->add('@', RecordType::MX, 'mx1.example.dk.', ttl: 3600, priority: 10);
    $records->add('www', 'A', '192.0.2.10', ttl: 3600);
});

$template->addRecord('mail', 'A', '192.0.2.20', ttl: 3600);
$template = $template->rename('another-name');

use QuickDns\QuickDns;
use QuickDns\Zone;

$quickDns = new QuickDns('[email protected]', 'password');
$template = $quickDns->getTemplate('my-template');

foreach (['domain1.dk', 'domain2.dk', 'domain3.dk'] as $domain) {
    $zone = (new Zone($quickDns, $domain))->create();
    $template->addZone($zone);

    echo "{$domain} created and added to {$template->name}", PHP_EOL;
}

use QuickDns\Exceptions\CommandFailed;

try {
    (new Zone($quickDns, 'example.dk'))->create();
} catch (CommandFailed $e) {
    echo $e->function(), ' failed: ', $e->statusText(), PHP_EOL;
}

use QuickDns\Laravel\Facades\QuickDns;

$zones = QuickDns::getZones();

return [
    // ...
    QuickDns\Symfony\QuickDnsBundle::class => ['all' => true],
];

use QuickDns\Testing\FakeQuickDns;
use QuickDns\Zone;

$fake = new FakeQuickDns();
$fake->addTemplate('standard');
$fake->addZone('existing.dk', templates: ['standard']);
$fake->addRecord('existing.dk', '@', 'MX', 'mx1.example.dk.', 3600, 10);

$quickDns = $fake->quickDns(); // or new QuickDns('[email protected]', 'secret', $fake->client())

(new Zone($quickDns, 'new.dk'))->create();

$fake->hasZone('new.dk');           // true
$fake->templatesOf('existing.dk');  // ['standard']
$fake->recordsOf('existing.dk');    // the zone's records after your writes
$fake->requests();                  // every request it answered