interface RecordRepositoryInterface (View source)

Reads over the records table by zone, name, id or RRset, plus the existence checks record validation relies on. Implemented for direct SQL and for the API backend mode.

Methods

array
getRecordsByDomainId(int $domainId, string|null $recordType = null)

Get records by domain ID

array
getRecordsByName(int $domainId, string $name, string|null $type = null)

Get the records at one name in a zone, optionally filtered by type.

array|null
getRecordById(int|string $recordId)

Get a record by ID

int
getZoneIdFromRecordId(int|string $rid)

Get Zone ID from Record ID

int
countZoneRecords(int $zone_id)

Count Zone Records for Zone ID

array
getRecordDetailsFromRecordId(int|string $rid)

Get record details from Record ID

array|null
getRecordFromId(int|string $id)

Get a Record from a Record ID

array
getRecordsFromDomainId(string $db_type, int $id, int $rowstart = 0, int $rowamount = Constants::DEFAULT_MAX_ROWS, string $sortby = 'name', string $sortDirection = 'ASC', bool $fetchComments = false)

Get all records from a domain id.

int
recidToDomid(int|string $id)

Record ID to Domain ID

bool
recordNameExists(string $name)

Check if record exists

bool
recordExists(int $domain_id, string $name, string $type, string $content)

Check if a record with the given parameters already exists

bool
hasNonDelegationRecords(string $name)

Check if non-delegation records exist for a given name

bool
hasPtrRecord(int $domain_id, string $name)

Check if any PTR record exists for a given reverse domain name

bool
hasSimilarRecords(int $domain_id, string $name, string $type, int|string $record_id)

Check if record has similar records with same name and type

string
getSerialByZid(int $zid)

Get Serial for Zone ID

array
getFilteredRecords(int $zone_id, int $row_start, int $row_amount, string $sort_by, string $sort_direction, bool $include_comments, string $search_term = '', string $type_filter = '', string $content_filter = '')

Get filtered records from a domain with search capabilities

int
getFilteredRecordCount(int $zone_id, bool $include_comments, string $search_term = '', string $type_filter = '', string $content_filter = '')

Get count of filtered records

array
getRRSetRecords(int $domainId, string $name, string $type)

Get all records in an RRset (matching domain, name, and type)

int|string|null
getRecordId(int $domain_id, string $name, string $type, string $content, int|null $prio = null, int|null $ttl = null)

Get record ID by its attributes.

int|string|null
getNewRecordId(int $domainId, string $name, string $type, string $content)

Get the ID of a newly created record

array
getSerialsByZoneIds(array $zoneIds)

Get serial numbers for multiple zones in a single query

Details

array getRecordsByDomainId(int $domainId, string|null $recordType = null)

Get records by domain ID

Parameters

int $domainId

Domain ID

string|null $recordType

Optional record type filter

Return Value

array

Array of records

array getRecordsByName(int $domainId, string $name, string|null $type = null)

Get the records at one name in a zone, optionally filtered by type.

Prefer this over getRecordsByDomainId() whenever only one name matters: in API backend mode the zone-wide call fetches every record in the zone. Names match case-insensitively, per RFC 4343.

Parameters

int $domainId

Domain ID

string $name

Record name, with or without a trailing dot

string|null $type

Optional record type filter

Return Value

array

Array of records

array|null getRecordById(int|string $recordId)

Get a record by ID

Parameters

int|string $recordId

Record ID (int for SQL mode, encoded string for API mode)

Return Value

array|null

Record data if found, null otherwise

int getZoneIdFromRecordId(int|string $rid)

Get Zone ID from Record ID

Parameters

int|string $rid

Record ID

Return Value

int

Zone ID

int countZoneRecords(int $zone_id)

Count Zone Records for Zone ID

Parameters

int $zone_id

Zone ID

Return Value

int

Record count

array getRecordDetailsFromRecordId(int|string $rid)

Get record details from Record ID

Parameters

int|string $rid

Record ID (int for SQL mode, encoded string for API mode)

Return Value

array

array of record details [rid,zid,name,type,content,ttl,prio]

array|null getRecordFromId(int|string $id)

Get a Record from a Record ID

Retrieve all fields of the record and send it back to the function caller.

Parameters

int|string $id

Record ID (int for SQL mode, encoded string for API mode)

Return Value

array|null

array of record detail, or null if nothing found

array getRecordsFromDomainId(string $db_type, int $id, int $rowstart = 0, int $rowamount = Constants::DEFAULT_MAX_ROWS, string $sortby = 'name', string $sortDirection = 'ASC', bool $fetchComments = false)

Get all records from a domain id.

Retrieve all fields of the records and send it back to the function caller.

Parameters

string $db_type

Database type

int $id

Domain ID

int $rowstart

Starting row [default=0]

int $rowamount

Number of rows to return in this query [default=9999]

string $sortby

Column to sort by [default='name']

string $sortDirection

Sort direction [default='ASC']

bool $fetchComments

Whether to fetch record comments [default=false]

Return Value

array

array of record details (empty array if nothing found)

int recidToDomid(int|string $id)

Record ID to Domain ID

Gets the id of the domain by a given record id

Parameters

int|string $id

Record ID (int for SQL mode, encoded string for API mode)

Return Value

int

Domain ID of record

bool recordNameExists(string $name)

Check if record exists

Parameters

string $name

Record name

Return Value

bool

true on success, false on failure

bool recordExists(int $domain_id, string $name, string $type, string $content)

Check if a record with the given parameters already exists

Parameters

int $domain_id

Domain ID

string $name

Record name

string $type

Record type

string $content

Record content

Return Value

bool

True if record exists, false otherwise

bool hasNonDelegationRecords(string $name)

Check if non-delegation records exist for a given name

Per RFC 1034: Delegation NS records are NOT authoritative data. Per RFC 4034: DS records are part of the delegation for DNSSEC. This method checks for records other than NS/DS which indicate authoritative data. Only delegation records (NS, DS) at a name should not prevent zone creation.

Parameters

string $name

Record name

Return Value

bool

True if non-delegation records exist, false otherwise

bool hasPtrRecord(int $domain_id, string $name)

Check if any PTR record exists for a given reverse domain name

Parameters

int $domain_id

Domain ID

string $name

Reverse domain name (e.g., "1.1.168.192.in-addr.arpa")

Return Value

bool

True if any PTR record exists for this name

bool hasSimilarRecords(int $domain_id, string $name, string $type, int|string $record_id)

Check if record has similar records with same name and type

Parameters

int $domain_id

Domain ID

string $name

Record name

string $type

Record type

int|string $record_id

Current record ID to exclude from check

Return Value

bool

True if similar records found, false otherwise

string getSerialByZid(int $zid)

Get Serial for Zone ID

Parameters

int $zid

Zone ID

Return Value

string

Serial Number or false if not found

array getFilteredRecords(int $zone_id, int $row_start, int $row_amount, string $sort_by, string $sort_direction, bool $include_comments, string $search_term = '', string $type_filter = '', string $content_filter = '')

Get filtered records from a domain with search capabilities

Parameters

int $zone_id

The zone ID

int $row_start

Starting row for pagination

int $row_amount

Number of rows per page

string $sort_by

Column to sort by

string $sort_direction

Sort direction (ASC or DESC)

bool $include_comments

Whether to include comments

string $search_term

Optional search term to filter by name or content

string $type_filter

Optional record type filter

string $content_filter

Optional content filter

Return Value

array

Array of filtered records

int getFilteredRecordCount(int $zone_id, bool $include_comments, string $search_term = '', string $type_filter = '', string $content_filter = '')

Get count of filtered records

Parameters

int $zone_id

The zone ID

bool $include_comments

Whether to include comments in the search

string $search_term

Optional search term to filter by name or content

string $type_filter

Optional record type filter

string $content_filter

Optional content filter

Return Value

int

Number of filtered records

array getRRSetRecords(int $domainId, string $name, string $type)

Get all records in an RRset (matching domain, name, and type)

Parameters

int $domainId

The domain/zone ID

string $name

The record name

string $type

Record type (A, AAAA, CNAME, etc.)

Return Value

array

Array of matching records

int|string|null getRecordId(int $domain_id, string $name, string $type, string $content, int|null $prio = null, int|null $ttl = null)

Get record ID by its attributes.

Parameters

int $domain_id

Domain ID

string $name

Record name

string $type

Record type

string $content

Record content

int|null $prio

Optional priority

int|null $ttl

Optional TTL

Return Value

int|string|null

Record ID or null if not found

int|string|null getNewRecordId(int $domainId, string $name, string $type, string $content)

Get the ID of a newly created record

Parameters

int $domainId

Domain ID

string $name

Record name

string $type

Record type

string $content

Record content

Return Value

int|string|null

Record ID or null if not found

array getSerialsByZoneIds(array $zoneIds)

Get serial numbers for multiple zones in a single query

Parameters

array $zoneIds

Array of zone IDs

Return Value

array

Array mapping zone ID to serial number