fix: paginer les records DNS Cloudflare pour recuperer tous les enregistrements
src/Service/CloudflareService.php - getDnsRecords(): - La zone esy-web.dev contient plus de 100 records DNS (26 TXT + MX + CNAME + A + AAAA etc.), la requete per_page=100 sans pagination ne retournait pas les TXT (SPF, DMARC, _mta-sts) - Ajout d'une boucle de pagination: recupere page par page jusqu'a total_pages via result_info.total_pages - Les colonnes Cloudflare du rapport affichaient "Non trouve" alors que les records existaient bien dans la zone Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -30,11 +30,30 @@ class CloudflareService
|
||||
*
|
||||
* @return list<array<string, mixed>>
|
||||
*/
|
||||
/**
|
||||
* Recuperer tous les enregistrements DNS d'une zone (avec pagination).
|
||||
*
|
||||
* @return list<array<string, mixed>>
|
||||
*/
|
||||
public function getDnsRecords(string $zoneId, int $perPage = 100): array
|
||||
{
|
||||
$data = $this->request('GET', '/zones/'.$zoneId.'/dns_records', ['per_page' => $perPage]);
|
||||
$allRecords = [];
|
||||
$page = 1;
|
||||
|
||||
return $data['result'] ?? [];
|
||||
do {
|
||||
$data = $this->request('GET', '/zones/'.$zoneId.'/dns_records', [
|
||||
'per_page' => $perPage,
|
||||
'page' => $page,
|
||||
]);
|
||||
|
||||
$records = $data['result'] ?? [];
|
||||
$allRecords = array_merge($allRecords, $records);
|
||||
|
||||
$totalPages = $data['result_info']['total_pages'] ?? 1;
|
||||
++$page;
|
||||
} while ($page <= $totalPages);
|
||||
|
||||
return $allRecords;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user