the-3labs-team/php-cloudflare-analytics

一个用于从Cloudflare Analytics获取页面浏览量和其它数据的PHP包

dev-main 2024-08-05 12:44 UTC

This package is auto-updated.

Last update: 2024-09-23 18:33:33 UTC


README

此包是Cloudflare Analytics GraphQL API的一个简单的PHP客户端。

⚠️ 注意: 此包非官方,且与Cloudflare无关联。它是一个社区驱动的包。

🚨 注意2: 此包处于开发中,尚未准备好用于生产。

安装

您可以通过composer安装此包

composer require the-3labs-team/php-cloudflare-analytics

配置

在您的.env文件中添加以下变量

CLOUDFLARE_API_TOKEN='your_cloudflare_api_token'
CLOUDFLARE_ZONE_TAG_ID='zoneTag'

或者您可以在构造函数中作为参数传递token和zoneTag。

use The3LabsTeam\PhpCloudflareAnalytics\CloudflareAnalytics;

$cf = new CloudflareAnalytics(
    token: 'your_cloudflare_api_token', zoneTag: 'zoneTag'
);

用法

您可以使用以下方法构建您的查询

use The3LabsTeam\PhpCloudflareAnalytics\CloudflareAnalytics;

$cf = new CloudflareAnalytics;

$results = $cf->select('firewallEventsAdaptive AS firewall')
    ->get('firewall.datetime', 'firewall.action');

get方法将返回包含结果的数组。

可用字段

  • firewallEventsAdaptive
  • httpRequests1mGroups
  • httpRequestsAdaptiveGroups
  • threatsAdaptiveGroups
  • threatsByCountryAdaptiveGroups

默认字段

  • datetime: 1小时
  • take: 10
  • orderBy: datetime

演示

获取最新的10个防火墙事件

$results = $cf->select('firewallEventsAdaptive AS firewall')
    ->get('firewall.datetime', 'firewall.action');

在两个日期之间过滤

$results = $cf->select('firewallEventsAdaptive AS firewall')
    ->where('firewall.datetime', '>=', '2021-10-01T00:00:00Z')
    ->where('firewall.datetime', '<=', '2021-10-02T00:00:00Z')
    ->get('firewall.datetime', 'firewall.action');

限制结果

$results = $cf->select('firewallEventsAdaptive AS firewall')
    ->take('firewall', 5)
    ->get('firewall.datetime', 'firewall.action');

排序结果

$results = $cf->select('firewallEventsAdaptive AS firewall')
    ->orderBy('firewall.datetime', 'desc')
    ->get('firewall.datetime', 'firewall.action');

从两个不同的表中获取两个字段:// TODO: 测试此功能

$results = $cf->select('firewallEventsAdaptive AS firewall, threatsAdaptiveGroups AS threats')
    ->get('firewall.datetime', 'firewall.action', 'threats.datetime', 'threats.action');

获取HTTP访问量并求和

    $results = $cf->select('httpRequests1mGroups AS http')
        ->take('http', 10)
        ->get('sum.countryMap.clientCountryName', 'sum.countryMap.requests', 'sum.countryMap.bytes', 'sum.countryMap.threats', 'dimensions.datetimeHour');

测试

composer test

许可证

MIT许可证(MIT)。请参阅许可证文件获取更多信息。

致谢

// TODO: 添加文件的其余部分