ربط Cloudflare PHP API

تم إعداد ترجمة للمقال قبل بدء دورة Backend PHP Developer .




بالنسبة إلى المطورين الذين يستخدمون PHP 7.0 أو أعلى ، يوفر Cloudflare ملفات PHP API. وهو يدعم أحدث إصدار رابع من Cloudflare API. يمكنك استخدام SDK لعدد من الأغراض ، بما في ذلك مثل:

  • إدارة وأتمتة التغييرات على إدخالات DNS الخاصة بك في Cloudflare.
  • إضافة مناطق إلى حسابك برمجياً.
  • إصدار وإدارة التغييرات في قواعد الصفحة
  • حظر عناوين IP ووكلاء المستخدم تلقائيًا باستخدام تأمين المنطقة وقواعد UserAgent.
  • الحصول على نطاقات IP Cloudflare لأتمتة القائمة البيضاء بجدار حماية

الميزات المدعومة


تقدم هذه المقالة بعض الأمثلة الشائعة لاستخدام Cloudflare PHP Binding API ؛ ندعم حاليًا نقاط النهاية وطرق المصادقة التالية:

V4 Endpoints

  • DNS
  • عناوين IP
  • قواعد الصفحة
  • قواعد وكيل المستخدم
  • إدارة المستخدم (جزئي)
  • تأمين المنطقة
  • المناطق

المصادقة

  • مفاتيح خدمة المستخدم
  • مفاتيح API

التركيب


يتوفر ربط Cloudflare PHP API على Packagist في cloudflare / sdk ، والذي يمكن تثبيته باستخدام Composer عن طريق استدعاء الملحن يتطلب cloudflare / sdk :



أيضًا ، إذا كنت ترغب في قراءة شفرة المصدر مباشرة أو المساهمة في المشروع ، يمكنك العثور على شفرة المصدر على GitHub في مستودع cloudflare / cloudflare-php .

بداية العمل


فيما يلي مثال صغير للعمل مع 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;


بتشغيل هذا البرنامج النصي البسيط في سطر الأوامر ، نحصل على الإخراج التالي:



مناطق الإدراج


إليك كيفية سرد جميع المناطق في حساب باستخدام الكود التالي:

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

سيؤدي تشغيل هذا البرنامج النصي من خلال سطر الأوامر إلى إعطاء الناتج التالي:



محو ذاكرة التخزين المؤقت في جميع مواقع الويب


في ما يلي مثال آخر يستخدم نقطة نهاية Purge Cache لمسح ذاكرة التخزين المؤقت تمامًا في كل موقع ويب لحسابنا (لاحظ أنه يمكنك مسح الملفات الفردية التي تستخدم ذاكرة التخزين المؤقت باستخدام طريقة cachePurge بدلاً من 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;

}

سترى الإخراج التالي نتيجة لتشغيل هذا البرنامج النصي في سطر الأوامر:



إنشاء قواعد الصفحة


يمكن أيضًا استخدام SDK لإضافة قواعد الصفحة برمجيًا إلى منطقة Cloudflare. في ما يلي مثال بسيط على إضافة قاعدة تجاوز ذاكرة التخزين المؤقت:

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

يمكننا بسهولة الحصول على معرف المنطقة المطلوبة باستخدام طريقة getZoneID لفئة نقطة نهاية المناطق - هذه الطريقة المساعدة تُعيد المعرّف باسم المنطقة.

لاحظ أن SDK يستخدم حقن التبعية لتحديد الغرض من قواعد الصفحة وتكوينها. هذا هو السبب في أننا بحاجة إلى تمرير مثيلات من فئات PageRulesTargets و PageRuleActions إلى طريقة createPageRule.

DNS


يمكن أيضًا استخدام SDK لإضافة السجلات برمجيًا. فيما يلي مثال لإضافة سجل 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;
}

بالإضافة إلى ذلك ، يمكننا أيضًا حذف تفاصيل سجلات DNS وعرضها وعرضها باستخدام SDK هذا. على سبيل المثال ، لنقم بإنشاء برنامج نصي بسيط لسرد نوع واسم كل سجل 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("icyapril.com");

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

سيكون هذا هو الإخراج عند تشغيل هذا البرنامج النصي لإحدى مناطقي:





تعلم المزيد عن الدورة



All Articles