PHP code example of spits-online / laravel-openprovider-api
1. Go to this page and download the library: Download spits-online/laravel-openprovider-api 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/ */
spits-online / laravel-openprovider-api example snippets
use SpitsOnline\Openprovider\Data\Record;
use SpitsOnline\Openprovider\Enums\RecordType;
use SpitsOnline\Openprovider\Facades\Openprovider;
Openprovider::zone('example.com')->records()->add(Record::create(RecordType::A, '1.2.3.4', name: 'www'));
Openprovider::zone('example.com')->records()->get(); // every record, as ZoneRecord objects
Openprovider::domains()->find('example.com')->renew();
use SpitsOnline\Openprovider\Data\Record;
use SpitsOnline\Openprovider\Enums\RecordType;
use SpitsOnline\Openprovider\Facades\Openprovider;
Openprovider::zone('example.com')->records()->add(
Record::create(RecordType::A, '1.2.3.4', name: 'www'),
Record::create(RecordType::MX, 'mail.example.com'),
);
use SpitsOnline\Openprovider\Data\Record;
use SpitsOnline\Openprovider\Enums\RecordType;
use SpitsOnline\Openprovider\Enums\Ttl;
Record::create(RecordType::A, '1.2.3.4'); // the domain itself
Record::create(RecordType::A, '1.2.3.4', name: 'www'); // www.example.com
Record::create(RecordType::MX, 'mail.example.com', ttl: Ttl::HOUR, priority: 5);
Record::create(RecordType::TXT, 'v=spf1
use SpitsOnline\Openprovider\Data\ZoneRecord;
use SpitsOnline\Openprovider\Enums\RecordType;
$records = Openprovider::zone('example.com')->records()->get();
$records = Openprovider::zone('example.com')->records()->ofType(RecordType::TXT);
$record = $records->first();
$record->name; // "www.example.com": Openprovider returns the full name
$record->type; // RecordType::A
$record->value; // "1.2.3.4", or "\"v=spf1 -all\"" for a TXT record: Openprovider quotes TXT values
$record->ttl; // 900
$record->priority; // 10 for an MX record, otherwise null
$record->zone; // "example.com"
$record->raw; // the full answer from Openprovider
$record->is($other); // same name, type, value, TTL and priority, ignoring TXT quotes
$record->toRecord(); // a ZoneRecord as a Record you can change and add elsewhere
$record->toArray(); // ['name' => 'www.example.com', 'type' => 'A', 'value' => '1.2.3.4', 'ttl' => 900]
Record::create(RecordType::TXT, 'x')->stored()->value; // "\"x\"", the value as Openprovider stores it
use SpitsOnline\Openprovider\Enums\Provider;
Openprovider::zone('example.com')->provider(Provider::SECTIGO)->records()->add($record);
use SpitsOnline\Openprovider\Facades\Openprovider;
$zone = Openprovider::zone('example.com')->get();
$zone->id; // 9146574
$zone->name; // "example.com"
$zone->type; // ZoneType::MASTER or ZoneType::SLAVE
$zone->isActive; // true
$zone->provider; // Provider::SECTIGO for premium DNS, otherwise null
$zone->records; // list<ZoneRecord>
$zone->soa; // the read-only SoaRecord
$zone->createdAt; // CarbonImmutable or null, see "Dates and timezones"
$zone->modifiedAt; // CarbonImmutable or null
$zone->raw; // the full answer from Openprovider
$zone->toArray(); // the zone in Openprovider's own keys, as the `show` route returns it
Openprovider::zones()->get();
Openprovider::zones()->get(namePattern: 'example*', provider: Provider::SECTIGO)->take(10);
Openprovider::zones()->create('example.com', records: [Record::create(RecordType::A, '1.2.3.4')]);
Openprovider::zones()->create('example.com', dnssec: true, template: 'my-template', provider: Provider::SECTIGO);
// A slave zone copies its records from your own master server
Openprovider::zones()->createSlave('example.com', masterIp: '192.0.2.1');
Openprovider::zone('example.com')->delete();
use SpitsOnline\Openprovider\Facades\Openprovider;
Openprovider::domain(1222095)->renew();
$domain = Openprovider::domains()->find('example.com'); // or null
$domain->renew();
$domain->lock();
$domain = Openprovider::domain(1222095)->get();
$domain->id; // 1222095
(string) $domain->name; // "example.com"
$domain->name->name; // "example"
$domain->name->extension; // "com"
$domain->status; // "ACT" (active) or "REQ" (requested)
$domain->autorenew; // Autorenew::ON, Autorenew::OFF or Autorenew::DEFAULT
$domain->nameServers; // list<Nameserver>, each with a name, ip and ip6
$domain->nsGroup; // "dns-openprovider", the nameserver group it uses, or null
$domain->isLocked; // true
$domain->isLockable; // whether the registry lets it be locked against transfers
$domain->isPrivateWhoisEnabled; // false
$domain->isDnssecEnabled; // true
$domain->isSectigoDnsEnabled; // whether it has an active premium DNS zone at Sectigo
$domain->isPremium; // whether it has a premium price
$domain->owner?->fullName; // "Jane Doe", also owner->companyName
$domain->ownerHandle; // "CV904717-NL", also adminHandle, techHandle and billingHandle
$domain->orderDate; // CarbonImmutable or null, see "Dates and timezones"
$domain->activeDate; // CarbonImmutable or null
$domain->renewalDate; // CarbonImmutable or null: renew before this date
$domain->expirationDate; // CarbonImmutable or null
$domain->comments; // your own notes on the domain, or null
$domain->raw; // the full answer from Openprovider
$check = Openprovider::domains()->check(['example.com', 'example.nl'])[0];
$check->domain; // "example.com"
$check->status; // "free", "reserved" or "in use"
$check->isAvailable(); // true when the status is "free"
$check->isPremium; // whether the registry charges a premium price
$check->raw; //
use Maatwebsite\Excel\Facades\Excel;
use SpitsOnline\Openprovider\Exports\ZoneExport;
$zone = Openprovider::zone('example.com')->get();
return Excel::download(ZoneExport::fromZone($zone), 'example.com.xlsx');