freemancontingent / zohoreports-sdk
ZohoReports PHP SDK
v0.1.1
2018-01-16 15:26 UTC
Requires
- php: >=5.5.0
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 账户电子邮件地址
- Authtoken - 如何为 Zoho Reports 生成 Zoho Authtoken
- 数据库 - 需要在 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
参数,该参数定义了您的主键,或用于比较的匹配列 - 如果
format
是CSV
且autoIdentify
是'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(); } }