inolares/coreconnect

用于客户端与 InoCore 之间通信的 coreConnect 类

2.1.0 2023-08-11 14:28 UTC

This package is auto-updated.

Last update: 2024-09-11 16:49:59 UTC


README

此 composer 包提供类,以轻松与 InoCore 安装进行通信。

为了简化集成,提供了多个类,每个类都针对特定需求进行集成。

目前有用于与基于会话的 PHP 网站、CLI 命令和与 Symfony 5.4+ 兼容的服务类集成的辅助类。

此外,您还可以在 contrib 文件夹中找到其他语言的实现,目前只有 PureBasic,但欢迎其他贡献! :)

Python 用户应查看我们的 PIP 包:https://pypi.ac.cn/project/core-connect/

要求

  • PHP 8.0 或更高版本
  • 带有有效凭据的 InoCore 安装
  • PureBasic 至少为 5.73 或更高版本
  • 对于 Symfony 至少使用 5.4

安装

最佳方式是通过 composer 在您的项目目录中执行以下命令来安装所有内容

composer require inolares/coreconnect

如果您不使用 composer 或希望手动安装它,只需复制至少基础类 "coreConnectBase.php" 和适合您环境的支持类之一。当然,您可以自由实现自己的类,只需确保从抽象类 coreConnectBase.php 继承即可。

如何使用

请参阅 ManualTests/ 目录中的示例。该类应该是相当直观的。

以下是如何使用的简要说明

  1. 创建一个对象
  2. 调用方法 "init($user,$pass,$host)" 来设置 InoCore 的凭据
  3. 开始调用 API 方法,如 get("v1/ping") 等。

Symfony 提示

将提供的文件 "examples/coreConnectService.php" 复制到您的 "src/Service" 目录。现在您可以使用 DI 来获取 coreConnectService 的引用,例如。

public function __construct(coreConnectService $coreConnect) {
  parent::__construct();
  $coreConnect = $coreConnect;
  $coreConnect->init($user,$pass,$url);
}

类方法

以下方法必须由您实现

  • setApiUrl() / getApiUrl()
  • setApiUser() / getApiUser()
  • setApiPass() / getApiPass()
  • setExpires() / getExpires()
  • setToken() / getToken()
  • setJwtUser() / getJwtUser()

此外,还实现了以下方法

  • init()
  • clearCredentials()
  • HasValidToken()
  • FetchToken()
  • call()
  • get()
  • post()
  • put()
  • delete()
  • prepareResponse()
  • getLastUrl()
  • setCurlOpts() [2.1.0+]

PHPUnit 测试

提供了一些 PHPUnit 测试,要运行这些测试,请执行以下操作

$> composer install
$> vendor/bin/phpunit tests

一些提示

仅适用于 coreConnect 2.1.0 或更高版本!

如果您想使用自签名证书连接到启用 https 的 InoCore 实例,请确保首先禁用 SSL 伙伴验证!为此,在调用 init() 之前调用此操作

$coreConnect->setCurlOpts([CURLOPT_SSL_VERIFYPEER => false]);

您可以为这里提供每个 CURLOPT_* 常量,但建议只为您的特定设置设置特定参数,并将其他一切保留为类的默认值!有关完整列表,请参阅 https://php.ac.cn/manual/de/function.curl-setopt.php

coreConnect 会将其自己的配置设置与您提供的值合并,然后再执行对 InoCore 的 API 请求。在多次 API 调用之间更改参数也是可能的,只需在执行 API 调用之前调用 setCurlOpts() 即可。