the-3labs-team / php-cloudflare-analytics
一个用于从Cloudflare Analytics获取页面浏览量和其它数据的PHP包
dev-main
2024-08-05 12:44 UTC
Requires
- php: ^8.1
- vlucas/phpdotenv: ^5.6
Requires (Dev)
- laravel/pint: ^1.0
- pestphp/pest: ^2.20
- spatie/ray: ^1.28
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
: 10orderBy
: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: 添加文件的其余部分