wabel/zoho-crm-copy-db

此包包含代码,帮助您直接将ZohoCRM记录复制到您的数据库中。

v1.0.0 2016-04-28 08:06 UTC

README

Latest Stable Version Latest Unstable Version License Scrutinizer Code Quality Build Status Coverage Status

Wabel的Zoho-CRM数据库复制器

这是什么?

本项目是一组工具,帮助您直接将Zoho CRM记录复制到您的数据库中。此工具将在您的数据库中创建与Zoho记录匹配的新表。如果您想将ZohoCRM的数据与自己的表同步,您应该查看ZohoCRM Sync。它建立在ZohoCRM ORM之上。在继续阅读之前,您应该熟悉使用ZohoCRM ORM,因此如果您不知道这个库,现在就停止阅读并点击此链接

它如何工作?

本项目提供了一个ZohoDatabaseCopier类,具有简单的fetchFromZoho方法。此方法接受一个ZohoDao作为参数。ZohoDaos可以使用ZohoCRM ORM创建。它还提供了一个具有pushToZoho方法的ZohoDatabasePusher类,用于将数据推送到Zoho CRM。

模块的ZohoDatabaseCopier

用法

// $connection is a Doctrine DBAL connection to your database.
$databaseCopier = new ZohoDatabaseCopier($connection);

// $contactZohoDao is the Zoho Dao to the module you want to copy.
$databaseCopier->fetchFromZoho($contactZohoDao);

复制命令将在您的数据库中创建一个名为'zoho_Contacts'的表,并从Zoho复制所有数据。表名以'zoho_'为前缀。

您可以使用构造函数的第二个(可选)参数更改前缀

// Generated database table will be prefixed with "my_prefix_"
$databaseCopier = new ZohoDatabaseCopier($connection, "my_prefix_");

默认情况下,复制是增量进行的。如果您已经修改了数据库中的某些数据并想要再次复制所有数据,您可以使用copy方法的第二个参数

// Pass false as second parameter to force copying everything rather than doing an incremental copy.
$databaseCopier->fetchFromZoho($contactZohoDao, false);

用户的ZohoDatabaseCopier

使用相同的$databaseCopier,您可以从zoho获取用户。用法

// $connection is a Doctrine DBAL connection to your database.
$databaseCopier = new ZohoDatabaseCopier($connection);


```php
// $userResponse is the Zoho Client Response from zoho-crm-orm package.
$databaseCopier->fetchUserFromZoho($userResponse);

ZohoDatabasePusher

用法

// $connection is a Doctrine DBAL connection to your database.
$databaseSync = new ZohoDatabasePusher($connection);

// $contactZohoDao is the Zoho Dao to the module you want to push.
$databaseSync->pushToZoho($contactZohoDao);

要求

此项目需要MySQL 5.7+才能运行。

Symfony命令

该项目还附带了一个Symfony命令,您可以使用它轻松复制表。

命令的构造函数接受一个ZohoDatabaseCopier实例、一个ZohoDatabasePusher实例和一个ZohoClient实例。此命令将自动重新生成Daos,以便将它们传递给ZohoDatabaseCopier实例和一个ZohoDatabasePusher

用法

# Command to synchronize data (both ways)
$ console zoho:sync
# Command to only fetch data from Zoho
$ console zoho:sync --fetch-only
# Command to only push data to Zoho
$ console zoho:sync --push-only

监听器

对于每个ZohoDatabaseCopier,您可以注册一个或多个监听器。这些监听器应实现ZohoChangeListener接口。

您可以通过将监听器数组传递给构造函数的第三个参数来注册这些监听器

$listener = new MyListener();
$databaseCopier = new ZohoDatabaseCopier($connection, "my_prefix_", [ $listener ]);