SqlRecordRepository
final class SqlRecordRepository implements RecordRepositoryInterface (View source)
Record reads on the records table.
Methods
Get Zone ID from Record ID
Count Zone Records for Zone ID
Get record details from Record ID
Get a Record from a Record ID
Get all records from a domain id.
Record ID to Domain ID
Check if non-delegation records exist for a given name
Check if record has similar records with same name and type
Check if a record with the given parameters already exists
Check if any PTR record exists for a given reverse domain name
Get Serial for Zone ID
Get serial numbers for multiple zones in a single query
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 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.
Get filtered records from a domain with search capabilities
Get count of filtered records
Get the ID of a newly created record
Get a record by ID
Get all records in an RRset (matching domain, name, and type)
Details
__construct(PDO $db, ConfigurationInterface $config)
No description
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
Retrieve all fields of the record and send it back to the function caller.
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.
int
recidToDomid(int|string $id)
Record ID to Domain ID
Gets the id of the domain by a given record id
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.
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
recordExists(int $domain_id, string $name, string $type, string $content)
Check if a record with the given parameters already exists
bool
hasPtrRecord(int $domain_id, string $name)
Check if any PTR record exists for a given reverse domain name
string
getSerialByZid(int $zid)
Get Serial for Zone ID
array
getSerialsByZoneIds(array $zoneIds)
Get serial numbers for multiple zones in a single query
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
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.
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
int|string|null
getNewRecordId(int $domainId, string $name, string $type, string $content)
Get the ID of a newly created record
array|null
getRecordById(int|string $recordId)
Get a record by ID
array
getRRSetRecords(int $domainId, string $name, string $type)
Get all records in an RRset (matching domain, name, and type)