villaflor/laravel-cloudflare

Laravel 访问 Cloudflare API 的客户端库

1.0.0 2021-02-27 20:33 UTC

This package is auto-updated.

Last update: 2024-09-28 23:06:17 UTC


README

Cloudflare Laravel 库。这个库是官方 Cloudflare PHP SDK 的扩展

要求

  • Cloudflare API 令牌

安装

在终端中

composer require villaflor/laravel-cloudflare

php artisan vendor:publish --provider="Villaflor\Cloudflare\CloudflareServiceProvider"

在 .env 文件中添加以下行

CLOUDFLARE_API_TOKEN={API token here}

可用的方法

CloudflareDNS

  • addRecord
  • listRecords
  • getRecordDetails
  • getRecordID
  • updateRecordDetails
  • deleteRecord

CloudflareDNSAnalytics

  • getReportTable
  • getReportByTime

CloudflareIps

  • listIPs

CloudflareZone

  • addZone
  • activationCheck
  • pause
  • unpause
  • getZoneById
  • listZones
  • getZoneID
  • getAnalyticsDashboard
  • changeDevelopmentMode
  • getCachingLevel
  • setCachingLevel
  • cachePurgeEverything
  • cachePurge
  • deleteZone

CloudflareZoneLockdown

  • listLockdowns
  • createLockdown
  • getLockdownDetails
  • updateLockdown
  • deleteLockdown

CloudflareZoneSettings

  • getMinifySetting
  • getRocketLoaderSetting
  • getAlwaysOnlineSetting
  • getEmailObfuscationSetting
  • getServerSideExcludeSetting
  • getHotlinkProtectionSetting
  • getBrowserCacheTtlSetting
  • updateBrowserCacheTtlSetting
  • updateMinifySetting
  • updateRocketLoaderSetting
  • updateAlwaysOnlineSetting
  • updateEmailObfuscationSetting
  • updateHotlinkProtectionSetting
  • updateServerSideExcludeSetting

用法

这个库使用依赖注入。依赖注入是一个听起来很高级的词,实际上意味着:类的依赖通过构造函数或在某些情况下通过“setter”方法“注入”到类中。

use Villaflor\Cloudflare\CloudflareDNS;

class MyClass
{
    private $cloudflareDNS;

    public function __construct(CloudflareDNS $cloudflareDNS)
    {
        $this->cloudflareDNS = $cloudflareDNS;
    }

    public function UpdateDNS()
    {
        $details = [
            'type' => 'A',
            'name' => 'my-domain.com',
            'content' => '1.2.3.4',
            'ttl' => 1,
            'proxied' => true,
        ];

        return $this->cloudflareDNS->updateRecordDetails('zone-id', 'record-id', $details);
    }
    
    public function DetailDNS()
    {
        return $this->cloudflareDNS->getRecordDetails('zone-id', 'record-id');
    }
    
    public function ListDNS()
    {
        return $this->cloudflareDNS->listRecords('zone-id');
    }
}