freemancontingent/zohoreports-sdk

v0.1.1 2018-01-16 15:26 UTC

This package is not auto-updated.

Last update: 2024-09-14 16:29:30 UTC


README

此仓库是旧版本的 Zoho API。

Zoho Reports PHP SDK

这是一个 PHP SDK,它通过 Zoho Reports 的 API 提供与 Zoho Reports 的集成。

v0.1 - 特性

  • 将 csv 导入 Zoho Reports

需求

唯一的需求是 PHP >=5.5.0

通过 Composer 安装

推荐的方法是通过 Composer 安装 ZohoReports-SDK。

请参阅入门指南了解如何下载和安装 Composer。

下载/安装 Composer 后,运行

composer.phar require freemancontingent/zohoreports-sdk

或在您的 composer.json 中添加它

{
    "require": {
        "freemancontingent/zohoreports-sdk": "dev-master"
    }
}

先决条件

您应该有一个有效的 Zoho 登录电子邮件地址来使用 API。如果您没有,请在 Zoho Reports 中注册并创建一个登录。

操作方法

初始化

您必须提供您的 Zoho 电子邮件、您的数据库名称(Zoho Reports 中的数据库)和您的 Zoho Authtoken

$zoho = new ZohoReports\ZohoReports('my-zoho-email', 'my-db', 'my-authtoken');

将数据导入您的 Zoho Reports 数据库

导入具有高度可定制性,它支持 Zoho Reports API 提供的几乎所有不同配置。

在大多数情况下,这将满足您的需求。

$res = $zoho->import('somefile.csv', 'My-Table');

第一个参数是您的 csv 文件的完整路径,第二个参数是您将数据导入的 Zoho Reports 数据库中的表。

这将截断您的 Zoho Reports 数据库中的 My-Table 并从 somefile.csv 导入所有数据。如果 My-Table 不存在,它将被创建。

您可以将参数(参数数组)传递给导入函数以覆盖默认设置。

$res = $zoho->import('somefile.csv', 'My-Table', ['param1' => 'my-value', ...]);

参数

约束

在定义您自己的参数时,在某些情况下您需要提供更多信息。

  • 如果 type 是 'UPDATEADD',您必须提供 pk 参数,该参数定义了您的主键,或用于比较的匹配列
  • 如果 formatCSVautoIdentify'false',您必须提供
    • csvCommentChar,您的 csv 文件中使用的注释字符
    • csvDelimeter,值分隔符,可以设置为
      • 0 为 COMMA(逗号)
      • 1 为 TAB(制表符)
      • 2 为 SEMICOLON(分号)
      • 3 为 SPACE(空格)
    • csvQuoted,文本限定符,可以设置为
      • 0 为 none(无)
      • 1 为 SINGLE QUOTE(单引号)
      • 2 为 DOUBLE QUOTE(双引号)

异常

有两种类型的异常

  • InvalidParamsException,如果传递给导入函数的参数无效则抛出 - 例如,$param['type'] = 'UPDATEADD' 且您未提供 $param['pk']
  • InvalidFileException,如果传递的文件不存在则抛出

示例

ZohoReports.php文件包含到您的项目中,或者如果您喜欢使用自动加载器,可以查看test.php

使用默认参数从CSV文件进行简单导入

$zoho = new ZohoReports\ZohoReports('my-zoho-email', 'my-db', 'my-authtoken');

try {
  $res = $zoho->import('path/to/somefile.csv', 'My-Table');
} catch(Exception $e) {
  echo $e->getMessage();
  exit();
}

导入类型为'UPDATEADD'

$zoho = new ZohoReports\ZohoReports('my-zoho-email', 'my-db', 'my-authtoken');

try {
  $res = $zoho->import('path/to/somefile.csv', 'My-Table', [
    'type' => 'UPDATEADD',
    'pk'   => 'id'
  ]);
} catch(Exception $e) {
  echo $e->getMessage();
  exit();
}

导入多个文件

$zoho = new ZohoReports\ZohoReports('my-zoho-email', 'my-db', 'my-authtoken');

$myFilesToImport = [
  'path/to/movies.csv' => 'movie_id',
  'path/to/actors.csv' => 'actor_id',
  'path/to/genres.csv' => 'genre_id'
];

foreach ($myFilesToImport as $path => $pk) {
  try {
    $res = $zoho->import($path, basename($path), [
      'type' => 'UPDATEADD',
      'pk'   => $pk
    ]);
  } catch(ZohoReport\InvalidFileException $e) {
    myLogger("File {$path} not imported. Exception: {$e->getMessage()}");
    continue;
  } catch(ZohoReport\InvalidParamsException $e) {
    myLogger("Wrong parameter for {$path}. {$e->getMessage()}");
    exit();
  }
}