eliashaeussler/cpanel-requests

一个小的PHP库,允许向cPanel实例发送请求


README

cPanel 请求

Coverage Maintainability Tests CGL Latest Stable Version Total Downloads License

📦 Packagist | :floppy_disk: 仓库 | :bug: 问题跟踪器

一个简单的PHP项目,用于在您的cPanel安装上发出API请求。这允许您调用安装内部模块并与它们交互,以添加、显示或列出数据,如域名、电子邮件账户、数据库等。

该项目使用了UAPI。因此,需要至少运行版本42的cPanel安装。.

🔥 安装

composer require eliashaeussler/cpanel-requests

⚠️ 如果您想与HTTP会话授权方法一起使用双因素认证,您必须手动引入spomky-labs/otphp包(>= 11.1)

⚡ 使用

授权

目前有以下授权方法可用

💡 您还可以为您的cPanel实例提供自己的授权实现。为此,您必须实现Application\Authorization\AuthorizationInterface接口。

创建一个新的CPanel实例

一旦您选择了认证方法,您就可以创建一个新的Application\CPanel实例

use EliasHaeussler\CpanelRequests\Application;

/** @var Application\Authorization\AuthorizationInterface $authorization */
$cPanel = new Application\CPanel($authorization, 'example.com', 2083);

执行API请求

现在您可以发出API请求

use EliasHaeussler\CpanelRequests\Application;

/** @var Application\CPanel $cPanel */
$response = $cPanel->api('<module>', '<function>', ['optional' => 'parameters']);
if ($response->isValid()) {
    // Do anything...
    // Response data can be fetched using $response->getData()
}

注意目前仅支持GET请求。

访问官方文档以获取有关可用API模块和函数的概述。

🐝 示例

use EliasHaeussler\CpanelRequests\Application;
use EliasHaeussler\CpanelRequests\Http;

$authorization = new Application\Authorization\TokenAuthorization(
    username: 'bob',
    token: '9CKU401OH5WVDGSAVXN3UMLT8BJ5IY',
);
$cPanel = new Application\CPanel(
    authorization: $authorization,
    host: 'cpanel.bobs.site',
    port: 2083,
    protocol: Http\Protocol::Https,
);

// Fetch domains from cPanel API
$response = $cPanel->api(
    module: 'DomainInfo',
    function: 'list_domains',
);

if (!$response->isValid()) {
    throw new \RuntimeException('Got invalid response from cPanel application.');
}

$domains = $response->getData()->data;
echo 'Bob\'s main domain is: ' . $domains->main_domain;

🗑️ 清理

该项目提供了一个控制台应用程序,可以从命令行执行多个清理命令。

# General usage
vendor/bin/cpanel-requests

# Remove expired request cookie files (default lifetime: 1 hour)
vendor/bin/cpanel-requests cleanup:cookies
vendor/bin/cpanel-requests cleanup:cookies --lifetime 1800

# Remove log files
vendor/bin/cpanel-requests cleanup:logs

🧑‍💻 贡献

请查看CONTRIBUTING.md

⭐ 许可证

该项目受GNU通用公共许可证3.0(或更高版本)许可。