noergaard/serverpilot

ServerPilot的RESTful API的PHP客户端

v0.1.0 2016-08-25 17:40 UTC

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_idkey即可。

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_idkey来运行这些测试。

您可以在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';
    }
}