interface RecordListingInterface (View source)

Zone-wide record listing, filtering, counting and RRset reads.

Methods

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

Get records by domain ID

array
getRecordsPageByDomainId(int $domainId, string|null $recordType, bool $withComments, int $limit, int $offset)

One page of the records getRecordsByDomainId() returns, in the same order, without the empty non-terminals (rows with no type or no name)

int
countRecordsByDomainId(int $domainId, string|null $recordType = null)

Number of rows getRecordsPageByDomainId() pages through

array
getRRSetPageRecords(int $domainId, string|null $recordType, int $limit, int $offset)

The records of one page of RRsets: the RRsets (name and type) are paged in the order they first appear in getRecordsByDomainId(), and every record of each one on the page comes back, in that same order

int
countRRSetsByDomainId(int $domainId, string|null $recordType = null)

Number of RRsets getRRSetPageRecords() pages through

array
getRecordsByDomainIdContaining(int $domainId, string|null $recordType, bool $withComments, array $contains)

getRecordsByDomainId(), narrowed to rows that may contain the given substrings, case-insensitively. It never drops a row that contains them; it may keep more, so callers still apply their own exact filter.

array
getRRSetRecordsContaining(int $domainId, string|null $recordType, array $contains)

Every record of each RRset (name and type) that has a member which may contain the given substrings, in getRecordsByDomainId() order. Like getRecordsByDomainIdContaining() it may keep more than the exact match.

string|null
getCommentForRecord(int|string $recordId, int $domainId, string $name, string $type)

The comment shown for one record: the SQL backend gives the comment linked to the record, else the unlinked comment for its name and type; the API backend gives the RRset comment, shared by every record in the set.

array
getRecordsFromDomainId(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.

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
countZoneRecords(int $zone_id)

Count Zone Records for Zone ID

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

Get the ID of a newly created record

Details

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

Get records by domain ID

Parameters

int $domainId

Domain ID

string|null $recordType

Optional record type filter

bool $withComments

Add a comment key (string or null) to every row, resolved in one lookup

Return Value

array

Array of records

array getRecordsPageByDomainId(int $domainId, string|null $recordType, bool $withComments, int $limit, int $offset)

One page of the records getRecordsByDomainId() returns, in the same order, without the empty non-terminals (rows with no type or no name)

Parameters

int $domainId

Domain ID

string|null $recordType

Optional record type filter

bool $withComments

Add a comment key (string or null) to every row

int $limit

Rows per page

int $offset

Rows to skip

Return Value

array

Array of records

int countRecordsByDomainId(int $domainId, string|null $recordType = null)

Number of rows getRecordsPageByDomainId() pages through

Parameters

int $domainId

Domain ID

string|null $recordType

Optional record type filter

Return Value

int

Record count

array getRRSetPageRecords(int $domainId, string|null $recordType, int $limit, int $offset)

The records of one page of RRsets: the RRsets (name and type) are paged in the order they first appear in getRecordsByDomainId(), and every record of each one on the page comes back, in that same order

Parameters

int $domainId

Domain ID

string|null $recordType

Optional record type filter

int $limit

RRsets per page

int $offset

RRsets to skip

Return Value

array

Array of records

int countRRSetsByDomainId(int $domainId, string|null $recordType = null)

Number of RRsets getRRSetPageRecords() pages through

Parameters

int $domainId

Domain ID

string|null $recordType

Optional record type filter

Return Value

int

RRset count

array getRecordsByDomainIdContaining(int $domainId, string|null $recordType, bool $withComments, array $contains)

getRecordsByDomainId(), narrowed to rows that may contain the given substrings, case-insensitively. It never drops a row that contains them; it may keep more, so callers still apply their own exact filter.

Parameters

int $domainId

Domain ID

string|null $recordType

Optional record type filter

bool $withComments

Add a comment key (string or null) to every row

array $contains

Needles by query parameter: name, content, q (name or content)

Return Value

array

Array of records

array getRRSetRecordsContaining(int $domainId, string|null $recordType, array $contains)

Every record of each RRset (name and type) that has a member which may contain the given substrings, in getRecordsByDomainId() order. Like getRecordsByDomainIdContaining() it may keep more than the exact match.

Parameters

int $domainId

Domain ID

string|null $recordType

Optional record type filter

array $contains

Needles by query parameter: name, content, q

Return Value

array

Array of records

string|null getCommentForRecord(int|string $recordId, int $domainId, string $name, string $type)

The comment shown for one record: the SQL backend gives the comment linked to the record, else the unlinked comment for its name and type; the API backend gives the RRset comment, shared by every record in the set.

Parameters

int|string $recordId

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

int $domainId

Domain ID

string $name

Fully qualified record name, no trailing dot

string $type

Record type

Return Value

string|null

The comment, null when there is none

array getRecordsFromDomainId(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

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

One read model per record, empty when the zone has none

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

One read model per matching record

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 countZoneRecords(int $zone_id)

Count Zone Records for Zone ID

Parameters

int $zone_id

Zone ID

Return Value

int

Record count

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