denislam / laravel-forge-api-sdk-php
用于访问官方 Laravel Forge API 的 PHP SDK
Requires
- guzzlehttp/guzzle: ~6.0
This package is not auto-updated.
Last update: 2024-09-29 05:54:29 UTC
README
在 Laravel Forge 上自动化任务从未如此简单
PHP Laravel Forge API SDK 让开发者可以通过 Forge 的 官方 REST API 在 PHP 代码中轻松访问 Laravel Forge,构建强大的应用程序和软件,以自动在 AWS、DigitalOcean、Linode 等平台上提供、管理和部署无限数量的 PHP 应用程序。您可以通过 使用 Composer 安装 SDK 或从我们的 最新版本 下载单个 zip 或 phar 文件来在几分钟内开始。
安装
您可以通过 Composer 安装 PHP Laravel Forge API SDK,通过要求 guzzlehttp/guzzle
包(见:GuzzleHTTP)并在项目的 composer.json
中注册 Laravel_Forge_API_PHP_SDK
命名空间的 PSR-4 自动加载器来安装。
{
"require": {
"guzzlehttp/guzzle": "~6.0"
},
"autoload": {
"psr-4": {
"Laravel_Forge_API_PHP_SDK\\": "src/laravel-forge-api-php-sdk/"
}
}
然后运行 composer update
composer update
需要 Composer 自动加载器
在您的代码中,需要 Composer 自动加载器 vendor/autoload.php
。
require __DIR__ . '/vendor/autoload.php';
如有必要,更改目录路径以匹配您的代码架构。
设置您的 Forge API 令牌
从您的 Forge 帐户设置 中创建一个新的 API 令牌。
然后复制并粘贴您的 API 令牌到 Forge::setToken()
函数中,并将此代码放在您的代码中。
Forge::setToken('COPY AND PASTE YOUR FORGE API TOKEN HERE');
用法
以下是一些您可以做的示例。服务器响应以 JSON 字符串格式显示。
列出所有服务器
echo Servers::list();
获取特定服务器的信息
echo Servers::get($server_id);
列出特定服务器上的所有站点
echo Sites::list($server_id);
创建新的服务器
Servers::create($payload); $payload = array( "provider" => $provider, // string "credential_id" => $credential_id, // boolean "region" => $region, // string "ip_address" => $ip_address, // string "private_ip_address" => $private_ip_address, // string "php_version" => $php_version, // string "database" => $database, // string "maria" => $maria, // boolean "load_balancer" => $load_balancer, // boolean "network" => $network // array );
函数快速参考
请访问我们的 SDK API 文档 以获取有关可用类和函数的完整参考。
- 服务器
Servers::create($payload = [])
Servers::list()
Servers::get($server_id)
Servers::update($server_id)
Servers::update_database_password($payload = [])
Servers::delete($server_id)
Servers::reboot($server_id)
Servers::revoke($server_id)
Servers::reconnect($server_id)
Servers::reactivate($server_id)
- 服务
Services::reboot_mysql($server_id)
Services::stop_mysql($server_id)
Services::reboot_nginx($server_id)
Services::stop_nginx($server_id)
Services::reboot_postgres($server_id)
Services::stop_postgres($server_id)
Services::install_blackfire($payload = [])
Services::install_papertrail($payload = [])
Services::remove_papertrail($payload = [])
- 守护进程
Daemons::create($server_id, $payload = [])
Daemons::list($server_id)
Daemons::get($server_id, $daemon_id)
Daemons::delete($server_id, $daemon_id)
Daemons::restart($server_id, $daemon_id)
- 防火墙规则
FirewallRules::create($server_id, $payload = [])
FirewallRules::list($server_id)
FirewallRules::get($server_id, $rule_id)
FirewallRules::delete($server_id, $rule_id)
- 计划任务
ScheduledJobs::create($server_id, $payload = [])
ScheduledJobs::list($server_id)
ScheduledJobs::get($server_id, $job_id)
ScheduledJobs::delete($server_id, $job_id)
- MySQL 数据库
MySQLDatabases::create($server_id, $payload = [])
MySQLDatabases::list($server_id)
MySQL数据库::get($server_id, $database_id)
MySQL数据库::delete($server_id, $database_id)
- MySQL数据库用户
MySQL数据库用户::create($server_id, $payload = [])
MySQL数据库用户::list($server_id)
MySQL数据库用户::get($server_id, $user_id)
MySQL数据库用户::update($server_id, $user_id, $payload = [])
MySQL数据库用户::delete($server_id, $user_id)
- 网站
网站::create($server_id, $payload = [])
网站::list($server_id)
网站::get($server_id, $site_id)
网站::update($server_id, $site_id, $payload = [])
网站::delete($server_id, $site_id)
网站::balancing($server_id, $site_id, $payload = [])
- SSL证书
SSL证书::create($server_id, $site_id, $payload = [])
SSL证书::install_existing($server_id, $site_id, $payload = [])
SSL证书::clone($server_id, $site_id, $payload = [])
SSL证书::letsencrypt($server_id, $site_id, $payload = [])
SSL证书::list($server_id, $site_id)
SSL证书::get($server_id, $site_id, $ssl_id)
SSL证书::install($server_id, $site_id, $ssl_id, $payload = [])
SSL证书::activate($server_id, $site_id, $ssl_id)
SSL证书::delete($server_id, $site_id, $ssl_id)
- SSH密钥
SSH密钥::create($server_id, $payload = [])
SSH密钥::list($server_id)
SSH密钥::get($server_id, $key_id)
SSH密钥::delete($server_id, $key_id)
- 工作进程
工作进程::create($server_id, $site_id, $payload = [])
工作进程::list($server_id, $site_id)
工作进程::get($server_id, $site_id, $worker_id)
工作进程::delete($server_id, $site_id, $worker_id)
工作进程::restart($server_id, $site_id, $worker_id)
- 部署
部署::enable($server_id, $site_id)
部署::disable($server_id, $site_id)
部署::get_script($server_id, $site_id)
部署::update($server_id, $site_id, $payload = [])
部署::deploy($server_id, $site_id)
部署::reset($server_id, $site_id)
部署::get_log($server_id, $site_id)
- 配置文件
配置文件::get_nginx($server_id, $site_id)
配置文件::update_nginx($server_id, $site_id, $payload = [])
配置文件::get_env($server_id, $site_id)
配置文件::update_env($server_id, $site_id, $payload = [])
- git项目
Git项目::install($server_id, $site_id, $payload = [])
Git项目::remove($server_id, $site_id)
- WordPress
WordPress::install($server_id, $site_id, $payload = [])
WordPress::uninstall($server_id, $site_id)
- 食谱
食谱::create($payload = [])
食谱::list()
食谱::get($recipe_id)
食谱::get($recipe_id, $payload = [])
食谱::delete($recipe_id)
食谱::run($recipe_id, $payload = [])
- 凭证
凭证::list()
完整文档
查看../public/docs/index.php
以获取SDK可用的API函数的完整参考。
实时演示
查看../public/docs/demo.php
以获取更多使用示例的实时演示。
代码沙盒
使用在../public/index.php
中设置的框架来测试您的代码。
额外功能
支持多个 HTTP 客户端
SDK包括对PHP中最强大的两个HTTP客户端的处理程序
默认情况下,Guzzle客户端用于处理所有Forge API请求。
即时动态 HTTP 客户端切换
如果您想添加其他客户端或更改客户端,您可以在几秒钟内完成
- 打开
Forge.php
- 将第35行的
const PHP_HTTP_CLIENT
更改为您想要的客户端。 - 保存文件,您就完成了!SDK将自动使用位于
../HttpHandlers/
中的HTTP客户端类来发起API请求。
自定义异常处理
SDK使您能够轻松地在代码中创建和触发自定义异常。以下是您需要做的
- 打开
../Exceptions/Errors.php
。 - 将您的自定义错误引用ID和消息输入到
errors($id)
函数数组中。消息ID可以包含空格和数字。
$data = [ //.. 'Custom Error ID 1' => ['context' => 'Your custom error message.' ], 'custom_error_id_2' => ['context' => 'Another custom error message.' ], //.. ];
- 要在代码中返回自定义错误消息,只需像这样使用
Errors
基类的get()
函数
return Errors::get('Custom Error ID 1');
- 就是这样!
我是否遗漏了一个基本功能?
贡献
- 创建一个问题并描述您的想法。
- 分支它
- 创建您的功能分支(
git checkout -b my-new-feature
) - 提交您的更改(
git commit -am '添加一些功能'
) - 发布分支(
git push origin my-new-feature
) - 创建一个新的拉取请求
为了测试您的流程,您可以使用我的测试仓库。
许可证
PHP的Laravel Forge API SDK是在MIT许可证下发布的。
捐赠
如果您觉得这个SDK为您节省了汗水或者给您带来了笑容,请买我几杯啤酒。干杯!☺
比特币
您可以将比特币捐赠发送到1BM3kt5UKe4v6Rb8sQBXA9pnFgJdMGCwWq,或者通过点击下面的按钮通过Coinbase进行。
PayPal
这里也接受信用卡支付