Cloudflare PHP Binding API

Terjemahan artikel disiapkan sebelum dimulainya kursus Pengembang PHP Backend .




Bagi para pengembang yang menggunakan PHP 7.0 atau lebih tinggi, Cloudflare menyediakan binder API PHP. Ini mendukung versi keempat terbaru Cloudflare API. Anda dapat menggunakan SDK ini untuk sejumlah tujuan, termasuk seperti:

  • Mengelola dan mengotomatiskan perubahan pada entri DNS Anda di Cloudflare.
  • Secara terprogram tambahkan zona ke akun Anda.
  • Versi dan mengelola perubahan dalam Aturan Halaman
  • Secara otomatis memblokir alamat IP dan Agen Pengguna menggunakan Penguncian Zona dan Aturan UserAgent.
  • Memperoleh rentang Cloudflare IP untuk mengotomatiskan daftar putih dengan firewall

Fitur yang Didukung


Artikel ini memberikan beberapa contoh umum menggunakan Cloudflare PHP Binding API; Kami saat ini mendukung titik akhir dan metode otentikasi berikut: Titik

Akhir V4

  • DNS
  • IP
  • Aturan Halaman
  • Aturan Agen Pengguna
  • Manajemen Pengguna (Sebagian)
  • Penguncian zona
  • Zona

Autentikasi

  • Kunci Layanan Pengguna
  • Kunci API

Instalasi


Pengikatan Cloudflare PHP API tersedia di Packagist di cloudflare / SDK , yang dapat diinstal menggunakan Komposer dengan memanggil komposer memerlukan cloudflare / SDK :



Juga, jika Anda ingin membaca kode sumber secara langsung atau berkontribusi pada proyek, Anda dapat menemukan kode sumber di GitHub di repositori cloudflare / cloudflare-php .

Awal pekerjaan


Ini adalah contoh kecil bekerja dengan 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;


Dengan menjalankan skrip sederhana ini di baris perintah, kami mendapatkan output berikut:



Zona Pencatatan


Berikut cara daftar semua zona dalam akun menggunakan kode berikut:

<?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;
}

Menjalankan skrip ini melalui baris perintah akan memberikan output berikut:



Bersihkan cache di semua situs web


Berikut adalah contoh lain yang menggunakan titik akhir Purge Cache untuk menghapus cache sepenuhnya di setiap situs web akun kami (perhatikan bahwa Anda dapat menghapus file individual yang menggunakan cache dengan menggunakan metode cachePurge alih-alih cachePurgeEverything):

<?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;

}

Anda akan melihat output berikut sebagai hasil menjalankan skrip ini di baris perintah:



Membuat Aturan Halaman


SDK juga dapat digunakan untuk secara terprogram menambahkan Aturan Halaman ke Zona Cloudflare. Berikut adalah contoh sederhana menambahkan aturan Cache Bypass:

<?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);

Kita dapat dengan mudah mendapatkan ID dari zona yang diinginkan menggunakan metode getZoneID dari kelas endpoint Zona - metode penolong ini mengembalikan ID dengan nama zona.

Perhatikan bahwa SDK menggunakan injeksi dependensi untuk menentukan tujuan dan konfigurasi aturan halaman. Inilah sebabnya mengapa kita perlu memberikan turunan dari kelas PageRulesTarget dan PageRuleActions ke metode createPageRule.

DNS


SDK juga dapat digunakan untuk menambahkan catatan secara terprogram. Berikut adalah contoh menambahkan catatan DNS:

<?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;
}

Selain itu, kami juga dapat menghapus, mendaftar, dan melihat rincian catatan DNS menggunakan SDK ini. Misalnya, mari buat skrip sederhana untuk mencantumkan jenis dan nama setiap catatan DNS di zona kami:

<?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;
}

Ini akan menjadi output ketika saya menjalankan skrip ini untuk salah satu zona saya:





Pelajari lebih lanjut tentang kursus



All Articles