Cloudflare PHP API-Bindung

Vor Beginn des Backend PHP Developer- Kurses wurde eine Übersetzung des Artikels erstellt .




Für Entwickler, die PHP 7.0 oder höher verwenden, bietet Cloudflare PHP-API-Ordner. Es unterstützt die neueste vierte Version der Cloudflare-API. Sie können dieses SDK für eine Reihe von Zwecken verwenden, darunter:

  • Verwalten und automatisieren Sie Änderungen an Ihren DNS-Einträgen in Cloudflare.
  • Fügen Sie Ihrem Konto programmgesteuert Zonen hinzu.
  • Versionierung und Verwaltung von Änderungen in Seitenregeln
  • Blockieren Sie IP-Adressen und Benutzeragenten automatisch mithilfe von Zonensperr- und UserAgent-Regeln.
  • Abrufen von Cloudflare-IP-Bereichen zur Automatisierung der Whitelist mit einer Firewall

Unterstützte Funktionen


Dieser Artikel enthält einige allgemeine Beispiele für die Verwendung der Cloudflare-PHP-Bindungs-API. Wir unterstützen derzeit die folgenden Endpunkte und Authentifizierungsmethoden:

V4-Endpunkte

  • DNS
  • IPs
  • Seitenregeln
  • User Agent-Regeln
  • Benutzerverwaltung (teilweise)
  • Zonensperrung
  • Zonen

Authentifizierung

  • User Service Keys
  • API-Schlüssel

Installation


Die Cloudflare-PHP-API-Bindung ist auf Packagist in cloudflare / sdk verfügbar , das mit Composer installiert werden kann, indem Composer aufgerufen wird. Cloudflare / sdk erforderlich :



Wenn Sie den Quellcode direkt lesen oder zum Projekt beitragen möchten, finden Sie den Quellcode unter GitHub im Cloudflare / Cloudflare-PHP- Repository .

Arbeitsbeginn


Hier ist ein kleines Beispiel für die Arbeit mit der API

<?php

require_once('vendor/autoload.php');

$key = new \Cloudflare\API\Auth\APIKey('mjsa@junade.com', 'API KEY GOES HERE');
$adapter = new Cloudflare\API\Adapter\Guzzle($key);
$user = new \Cloudflare\API\Endpoints\User($adapter);

echo 'Your user ID is: ' . $user->getUserID() . PHP_EOL;


Wenn Sie dieses einfache Skript in der Befehlszeile ausführen, erhalten Sie die folgende Ausgabe:



Zonen auflisten


So listen Sie alle Zonen in einem Konto mit dem folgenden Code auf:

<?php

require_once('vendor/autoload.php');

$key = new \Cloudflare\API\Auth\APIKey('mjsa@junade.com', 'API KEY GOES HERE');
$adapter = new Cloudflare\API\Adapter\Guzzle($key);

$zones = new \Cloudflare\API\Endpoints\Zones($adapter);
foreach ($zones->listZones()->result as $zone) {
   echo $zone->name.' ('.$zone->plan->name.')'.PHP_EOL;
}

Wenn Sie dieses Skript über die Befehlszeile ausführen, erhalten Sie die folgende Ausgabe:



Leeren Sie den Cache auf allen Websites


Hier ist ein weiteres Beispiel, das den Endpunkt "Cache löschen" verwendet, um den Cache auf jeder Website unseres Kontos vollständig zu löschen (beachten Sie, dass Sie einzelne Dateien, die den Cache verwenden, mithilfe der cachePurge-Methode anstelle von cachePurgeEverything löschen können):

<?php

require_once('vendor/autoload.php');

$key = new \Cloudflare\API\Auth\APIKey('mjsa@junade.com', 'API KEY GOES HERE');
$adapter = new Cloudflare\API\Adapter\Guzzle($key);

$zones = new \Cloudflare\API\Endpoints\Zones($adapter);
foreach ($zones->listZones()->result as $zone) {
   echo "Cache purge for " . $zone->name . ": ";
   echo $zones->cachePurgeEverything($zone->id) == true ? "successful" : "failed";
   echo PHP_EOL;

}

Als Ergebnis der Ausführung dieses Skripts in der Befehlszeile wird die folgende Ausgabe angezeigt:



Seitenregeln erstellen


Das SDK kann auch zum programmgesteuerten Hinzufügen von Seitenregeln zur Cloudflare-Zone verwendet werden. Hier ist ein einfaches Beispiel für das Hinzufügen einer Cache-Umgehungsregel:

<?php

require_once('vendor/autoload.php');

$key = new \Cloudflare\API\Auth\APIKey('mjsa@junade.com', 'API KEY GOES HERE');
$adapter = new Cloudflare\API\Adapter\Guzzle($key);
$zones = new \Cloudflare\API\Endpoints\Zones($adapter);

$zoneID = $zones->getZoneID("junade.com");

$pageRulesTarget = new \Cloudflare\API\Configurations\PageRulesTargets('https://junade.com/noCache/*');

$pageRulesConfig = new \Cloudflare\API\Configurations\PageRulesActions();
$pageRulesConfig->setCacheLevel('bypass');

$pageRules = new \Cloudflare\API\Endpoints\PageRules($adapter);
$pageRules->createPageRule($zoneID, $pageRulesTarget, $pageRulesConfig, true, 6);

Mit der getZoneID-Methode der Zones-Endpunktklasse können wir die ID der gewünschten Zone leicht abrufen. Diese Hilfsmethode gibt die ID mit dem Namen der Zone zurück.

Beachten Sie, dass das SDK die Abhängigkeitsinjektion verwendet, um den Zweck und die Konfiguration von Seitenregeln anzugeben. Aus diesem Grund müssen Instanzen der Klassen PageRulesTargets und PageRuleActions an die Methode createPageRule übergeben werden.

DNS


Das SDK kann auch zum programmgesteuerten Hinzufügen von Datensätzen verwendet werden. Hier ist ein Beispiel für das Hinzufügen eines DNS-Eintrags:

<?php

require_once('vendor/autoload.php');

$key = new \Cloudflare\API\Auth\APIKey('mjsa@junade.com', 'API KEY GOES HERE');
$adapter = new Cloudflare\API\Adapter\Guzzle($key);
$zones = new \Cloudflare\API\Endpoints\Zones($adapter);

$zoneID = $zones->getZoneID("junade.com");

$dns = new \Cloudflare\API\Endpoints\DNS($adapter);
if ($dns->addRecord($zoneID, "A", 'example', '8.8.8.8', 0, true) === true) {
   echo "DNS record created.". PHP_EOL;
}

Darüber hinaus können wir mit diesem SDK auch die Details von DNS-Einträgen löschen, auflisten und anzeigen. Erstellen wir beispielsweise ein einfaches Skript, um den Typ und den Namen jedes DNS-Eintrags in unserer Zone aufzulisten:

<?php

require_once('vendor/autoload.php');

$key = new \Cloudflare\API\Auth\APIKey('mjsa@junade.com', 'API KEY GOES HERE');
$adapter = new Cloudflare\API\Adapter\Guzzle($key);
$zones = new \Cloudflare\API\Endpoints\Zones($adapter);

$zoneID = $zones->getZoneID("icyapril.com");

$dns = new \Cloudflare\API\Endpoints\DNS($adapter);
foreach ($dns->listRecords($zoneID)->result as $record) {
   echo $record->type." ".$record->name.PHP_EOL;
}

Dies ist die Ausgabe, wenn ich dieses Skript für eine meiner Zonen ausführe:





Erfahren Sie mehr über den Kurs



All Articles