RecordRepositoryInterface
interface RecordRepositoryInterface implements RecordLookupInterface, RecordListingInterface, ZoneSerialReadInterface (View source)
Reads on the records table; implemented for SQL and for the API backend mode.
Union of the RecordRepositoryInterface roles; consumers should depend on the narrowest role they use.
Methods
Get record details from Record ID
Check if a record with the given parameters already exists
Get the records at one name in a zone, optionally filtered by type.
Get the enabled records in a zone at a name or anywhere below it, matched case-insensitively. Empty non-terminals are excluded.
Check if any PTR record exists for a given reverse domain name
Check if record has similar records with same name and type
Check if non-delegation records exist for a given name
Get records by domain ID
One page of the records getRecordsByDomainId() returns, in the same order, without the empty non-terminals (rows with no type or no name)
Number of rows getRecordsPageByDomainId() pages through
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
Number of RRsets getRRSetPageRecords() pages through
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.
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.
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.
Get all records from a domain id.
Get filtered records from a domain with search capabilities
Get count of filtered records
Get all records in an RRset (matching domain, name, and type)
Get the ID of a newly created record
Get serial numbers for multiple zones in a single query
Details
array|null
getRecordById(int|string $recordId)
Get a record by ID
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.
array
getRecordDetailsFromRecordId(int|string $rid)
Get record details from Record ID
int
getZoneIdFromRecordId(int|string $rid)
Get Zone ID from Record ID
int
recidToDomid(int|string $id)
Record ID to Domain ID
Gets the id of the domain by a given record id
bool
recordExists(int $domain_id, string $name, string $type, string $content)
Check if a record with the given parameters already exists
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.
array
getRecordsAtOrUnder(int $domainId, string $name)
Get the enabled records in a zone at a name or anywhere below it, matched case-insensitively. Empty non-terminals are excluded.
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
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.
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.
Retrieve all fields of the records and send it back to the function caller.
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
string
getSerialByZid(int $zid)
Get Serial for Zone ID
array
getSerialsByZoneIds(array $zoneIds)
Get serial numbers for multiple zones in a single query