asimlqt/mailchimp-export

导出 Mailchimp 列表的库

1.0 2018-01-26 15:04 UTC

This package is not auto-updated.

Last update: 2024-09-20 22:07:07 UTC


README

一个简单的导出 Mailchimp 列表的库

需要 PHP >= 7

安装

使用以下 composer 命令安装

composer require asimlqt/mailchimp-export

示例

以下是一个示例,导出一个 mailchimp 列表并将其保存为 csv 文件。

<?php

require_once './vendor/autoload.php';

use Asimlqt\MailchimpExport\MailchimpException;
use Asimlqt\MailchimpExport\ListExport;
use Asimlqt\MailchimpExport\Writer\CsvWriter;

$writer = new CsvWriter(new SplFileObject("/my/path/list.csv", "w"));

try {
    $exp = new ListExport($apiKey, $listId, $writer);
    $exp->run();
} catch (MailchimpException $e) {
    echo $e->getMessage();    
}

作者

目前默认提供了 2 位作者

CSV 写入器

见上面的示例。

数据库写入器

注意:在写入之前将截断指定的表!

这比 csv 写入器需要更多的配置。

构造函数的定义如下

public function __construct(PDO $pdo, string $table, array $mapping)

$pdo 是一个标准的 php pdo 连接对象。

$table 是你想要写入的表名

$mapping 是一个数组,它将 mailchimp 字段映射到数据库列。数组的键是 mailchimp 字段的名称,值是数据库列。

使用数据库写入器的示例

<?php

require_once './vendor/autoload.php';

use Asimlqt\MailchimpExport\MailchimpException;
use Asimlqt\MailchimpExport\ListExport;
use Asimlqt\MailchimpExport\Writer\DatabaseWriter;

$mapping = [
    'Email Address' => 'email',
    'First Name' => 'firstname',
    'Last Name' => 'lastname',
];

$pdo = new PDO('mysql:dbname=mailchimp;host=127.0.0.1', 'user', 'password');
$writer = new DatabaseWriter($pdo, 'subscribers', $mapping);

try {
    $exp = new ListExport($apiKey, $listId, $writer);
    $exp->run();
} catch (MailchimpException $e) {
    echo $e->getMessage();
}

在上面的示例中,'Email Address'、'First Name' 和 'Last Name' 是 mailchimp 字段的名称,'email'、'firstname' 和 'lastname' 是要写入的数据库列。CsvWriter 只是将所有内容写入 csv 文件,因此不需要映射。

数据以批量的形式插入到数据库中。默认大小为 100 行。你可以使用 DatabaseWritersetBatchSize() 方法将其设置为不同的值。

自定义写入器

如果你需要将数据写入其他地方,只需扩展 Writer 接口(它只有一个方法),并将其传递给 ListExport 构造函数。

interface Writer
{
    public function write(array $data);
}