noergaard / serverpilot
ServerPilot的RESTful API的PHP客户端
Requires
- php: >=5.5.9
- guzzlehttp/guzzle: ^6.2
- tightenco/collect: ^5.2
Requires (Dev)
- mockery/mockery: ^0.9
- phpunit/phpunit: ^5.5.0
This package is not auto-updated.
Last update: 2024-09-26 02:40:44 UTC
README
A PHP Client for ServerPilot API V1 using GuzzleHttp and PSR-4 autoloading support.
注意:此包仍在开发中
安装
composer require noergaard/serverpilot
入门
要开始,只需创建客户端并提供从ServerPilot获得的client_id
和key
即可。
use Noergaard\ServerPilot\Client; $client = new Client('your_serverpilot_client_id', 'your_serverpilot_key');
使用资源
此客户端包遵循ServerPilot提供的资源命名约定及其API文档。
有关API端点的更多详细信息,请访问ServerPilot API V1文档。
服务器
要向服务器资源发出请求,请在client
对象上调用servers()
方法。
从所有对服务器资源的请求中,将返回一个ServerEntity
数组或单个ServerEntity
。
ServerEntity
具有公共驼峰式属性,与ServerPilot API返回的值相匹配。
列出所有服务器
$servers = $client->servers()->all(); foreach($servers as $server) { var_dump($server->name); }
连接新服务器
连接服务器到ServerPilot涉及多个步骤。
有关更多信息,请访问ServerPilot API V1文档。
$server = $client->servers()->create('name'); // Api key to use for provision $apiKey = $server->apiKey;
检索/获取服务器
$server = $client->servers()->get('serverId');
更新服务器
$server = $client->servers()->update('serverId', true, false);
删除服务器
$server = $client->servers()->delete('serverId');
系统用户
要向系统用户资源发出请求,请在client
对象上调用systemUsers()
方法。
从所有对系统用户资源的请求中,将返回一个SystemUserEntity
数组或单个SystemUserEntity
。
SystemUserEntity
具有公共驼峰式属性,与ServerPilot API返回的值相匹配。
列出所有系统用户
$systemUsers = $client->systemUsers()->all() foreach($systemUsers as $systemUser) { var_dump($systemUser->name); }
创建系统用户
注意 用户名长度必须介于3到32个字符之间,为小写ASCII字母、数字或破折号。
注意 密码长度必须至少8个字符,最多200个字符,且不得有前导或尾随空格。
有关更多信息,请访问ServerPilot API V1文档。
$systemUser = $client->systemUsers()->create('serverId', 'username', 'password'); $id = $systemUser->id;
检索/获取系统用户
$systemUser = $client->systemUsers()->get('systemUserId');
更新系统用户
注意 密码长度必须至少8个字符,最多200个字符,且不得有前导或尾随空格。
有关更多信息,请访问ServerPilot API V1文档。
$systemUser = $client->systemUsers()->update('systemUserId', 'password');
删除系统用户
$systemUser = $client->systemUsers()->delete('systemUserId');
应用
要向应用资源发出请求,请在client
对象上调用apps()
方法。
从所有对应用资源的请求中,将返回一个AppEntity
数组或单个AppEntity
。
AppEntity
具有公共驼峰式属性,与ServerPilot API返回的值相匹配。
列出所有应用
$apps = $client->apps()->all(); foreach($apps as $app { var_dump($app->name); }
创建应用
注意 创建新应用时,将创建应用的服务器由系统用户确定。
在创建应用时,您可以同时安装WordPress。
如果您想安装WordPress,您必须提供WordPress安装过程所需的信息和凭据。
为了简化此过程,此包使用WordPressFactory
对象,该对象实例化要传递给ServerPilot API的正确对象。
如果您不想安装WordPress,则无需为此参数提供任何数据。
为了使选择PHP运行时更加容易,Apps
类提供了ServerPilot支持的各个运行时的常量。
// Use PHP 5.4 $runtime = Apps::PHP54; // Use PHP 5.5 $runtime = Apps::PHP55; // Use PHP 5.6 $runtime = Apps::PHP56; // Use PHP 7.0 $runtime = Apps::PHP70; // Use PHP 7.1 $runtime = Apps::PHP71;
创建不包含WordPress的应用
$app = $client->apps()->create('appName', 'systemUserId', 'runtime', ['example.com', 'www.example.com']);
创建包含WordPress的应用
$wordpress = WordPressFactory::make('Site Title', 'admin','password', 'john@example.com'); $app = $client->apps()->create('appName', 'systemUserId', 'runtime', ['example.com', 'www.example.com'], $wordpress);
检索/获取应用的详细信息
$app = $client->apps()->get('appId');
更新应用
为了使选择PHP运行时更加容易,Apps
类提供了ServerPilot支持的各个运行时的常量。
// Use PHP 5.4 $runtime = Apps::PHP54; // Use PHP 5.5 $runtime = Apps::PHP55; // Use PHP 5.6 $runtime = Apps::PHP56; // Use PHP 7.0 $runtime = Apps::PHP70; // Use PHP 7.1 $runtime = Apps::PHP71;
$app = $client->apps()->update('appId', 'runtime', ['example.com', 'www.example.com']);
删除应用
$app = $client->apps()->delete('appId');
自定义SSL - 自动SSL - 强制SSL
这些功能尚未在此包中实现,但很快将推出。
数据库
要请求数据库资源,请在client
对象上调用databases()
方法。
从所有数据库资源请求返回一个DatabaseEntity
数组或单个DatabaseEntity
。
DatabaseEntity
具有公共驼峰式属性,与ServerPilot API返回的值相匹配。
列出所有数据库
$databases = $client->databases()->all();
创建数据库
要在应用中创建数据库,ServerPilot API需要数据库用户对象。此包通过使用DatabaseUserFactory
对象简化了此过程。
注意 数据库用户名必须最多16个字符。
注意 数据库密码必须至少8个字符,最多200个字符,且不能有前导或尾部空格。
注意 数据库名称必须介于3到32个字符之间,可以是小写ASCII字母、数字或破折号。
DatabaseUserFactory
对象需要以下参数
$databaseUser = DatabaseUserFactory::make('username', 'password'); $database = $client->databases()->create('appId', 'databaseName', $databaseUser);
检索/获取现有数据库
$database = $client->databases()->get('databaseId');
更新数据库用户密码
$database = $client->databases()->updatePassword('databaseId', 'databaseUserId', 'password');
删除数据库
$database = $client->databases()->delete('databaseId');
操作
要请求操作资源,请在client
对象上调用actions()
方法。
从所有操作资源请求返回一个ActionEntity
数组或单个ActionEntity
。
ActionEntity
具有公共驼峰式属性,与ServerPilot API返回的值相匹配。
检查操作的状态
您可以检查任何正在修改数据的资源操作。
在创建、更新或删除资源时,您正在修改数据。
要检查资源操作,可以将资源实体作为参数传递给action
对象上的status()
方法。
您也可以仅提供操作ID
。
在连接服务器时检查操作状态,并将ServerEntity
传递给状态方法
$server = $client->servers()->create('name'); $action = $client->actions()->status($server);
在连接服务器时检查操作状态,并将操作ID传递给状态方法
$server = $client->servers()->create('name'); $action = $client->actions()->status($server->getActionId());
待办事项
- 实现服务器
- 实现系统用户
- 实现应用
- 实现数据库
- 实现操作
应用待办事项
- 添加自定义SSL证书
- 启用自动SSL
- 删除自定义SSL证书或禁用自动SSL
- 启用或禁用强制SSL
测试
此包中有两种测试类型:单元测试和集成测试。
单元测试
可直接使用。
要运行这些测试,可以在Unit
目录中运行它们
phpunit ./tests/Unit
集成测试
集成测试会调用ServerPilot API的端点。
因此,您需要提供ServerPilot的client_id
和key
来运行这些测试。
您可以在TestCase
类中添加这些信息,这些类位于/tests/TestCase
目录下。
<?php class TestCase extends PHPUnit_Framework_TestCase { protected $clientId; protected $key; public function setUp() { parent::setUp(); $this->clientId = 'your_client_id'; $this->key = 'your_key'; } }