feat: initial commit
This commit is contained in:
Executable
+76
@@ -0,0 +1,76 @@
|
||||
<?php
|
||||
/**
|
||||
* Cloudflare 全局配置检测(cong.php 三项均为可选)
|
||||
*/
|
||||
class CloudflareConfig
|
||||
{
|
||||
/** @var array<string,mixed> CLI 回归用覆盖项(enabled / server_ip) */
|
||||
private static $testOverrides = [];
|
||||
|
||||
public static function setTestOverrides(array $overrides)
|
||||
{
|
||||
self::$testOverrides = $overrides;
|
||||
}
|
||||
|
||||
public static function clearTestOverrides()
|
||||
{
|
||||
self::$testOverrides = [];
|
||||
}
|
||||
|
||||
public static function apiToken()
|
||||
{
|
||||
return defined('CLOUDFLARE_API_TOKEN') ? trim((string) CLOUDFLARE_API_TOKEN) : '';
|
||||
}
|
||||
|
||||
public static function accountId()
|
||||
{
|
||||
return defined('CLOUDFLARE_ACCOUNT_ID') ? trim((string) CLOUDFLARE_ACCOUNT_ID) : '';
|
||||
}
|
||||
|
||||
public static function serverIp()
|
||||
{
|
||||
if (array_key_exists('server_ip', self::$testOverrides)) {
|
||||
return trim((string) self::$testOverrides['server_ip']);
|
||||
}
|
||||
return defined('SERVER_IP') ? trim((string) SERVER_IP) : '';
|
||||
}
|
||||
|
||||
/**
|
||||
* Token + Account ID 均已配置时启用 Cloudflare 自动化
|
||||
*/
|
||||
public static function isEnabled()
|
||||
{
|
||||
if (array_key_exists('enabled', self::$testOverrides)) {
|
||||
return (bool) self::$testOverrides['enabled'];
|
||||
}
|
||||
return self::apiToken() !== '' && self::accountId() !== '';
|
||||
}
|
||||
|
||||
public static function statusLabel($status)
|
||||
{
|
||||
$map = [
|
||||
'local' => '本地登记',
|
||||
'pending_ns' => '待检测',
|
||||
'provisioning' => '配置中',
|
||||
'ready' => '已生效',
|
||||
'error' => '失败',
|
||||
];
|
||||
return $map[$status] ?? (string) $status;
|
||||
}
|
||||
|
||||
public static function parseNameservers($json)
|
||||
{
|
||||
if ($json === null || $json === '') {
|
||||
return [];
|
||||
}
|
||||
$decoded = json_decode($json, true);
|
||||
return is_array($decoded) ? $decoded : [];
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('cloak_cloudflare_enabled')) {
|
||||
function cloak_cloudflare_enabled()
|
||||
{
|
||||
return CloudflareConfig::isEnabled();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user