intracto/campaign-monitor-bundle

Campaign Monitor API 的 Symfony 扩展包

v0.5 2017-11-28 08:54 UTC

This package is auto-updated.

Last update: 2024-09-12 04:11:01 UTC


README

欢迎使用 IntractoCampaignMonitorBundle - 一个用于 Campaign Monitor PHP 库的 Symfony 包装器。

有关如何开始使用 IntractoCampaignMonitorBundle 的详细信息,请继续阅读。

包含内容

IntractoCampaignMonitorBundle 具有以下特性

  • API 的所有结果都会注入到不同的模型中。
  • 分页结果作为 Paginator 实例返回,并提供了获取下一组记录的方法。
  • 所有类都采用了防御性编程方法来防止实例损坏。

IntractoCampaignMonitorBundle 中包含的所有代码都按照 MIT 或 BSD 许可发布。

安装

步骤 1 - 使用 composer 安装 IntractoCampaignMonitorBundle

编辑您的 composer.json 文件以将扩展包作为依赖项包含。

{
    "require": {
        "intracto/campaign-monitor-bundle": "0.1",
    }
}

打开命令行窗口,并让 composer 下载新的依赖项。

$ php composer.phar update intracto/campaign-monitor-bundle

步骤 2 - 在您的 AppKernel 文件中注册扩展包

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        ...
        new Intracto\CampaignMonitorBundle\IntractoCampaignMonitorBundle(),
    );
}

配置扩展包以使用您的 Campaign Monitor API 密钥

// app/config/config.yml

intracto_campaign_monitor:
    api_key: YOUR_API_KEY

使用方法

您可以使用 4 个工厂服务。

  • itr.campaign_monitor.factory.client_connector
  • itr.campaign_monitor.factory.list_connector
  • itr.campaign_monitor.factory.segment_connector
  • itr.campaign_monitor.factory.campaign_connector

这些服务中的每一个都实现了 ConnectorFactory 接口,该接口有一个公开方法 'getConnectorForId',它接受一个字符串形式的 id,并返回一个 Connector。

以下是如何使用 ClientConnectorFactory 服务的示例。

<?php

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;

class ClientController extends Controller
{
	/**
	* @var Request $request
	* @return Response
	*/
	public function subscriberListsAction(Request $request)	
	{
		$clientConnectorFactory = $this->get('itr.campaign_monitor.factory.client_connector');
		
		$clientId = $this->getParameter('your_client_id');
		$clientConnector = $clientConnectorFactory->getConnectorForId($clientId);
		
		/** @var ListReference[]|ArrayCollection $lists */
		$lists = $clientConnector->getLists();
		
		return $this->render('your_template_file.html.twig', ['lists' => $lists]);
	}
	
	...
}

请查看 Connector 类以了解可用的方法。几乎所有方法都将以面向对象的方式返回响应。

分页结果,如订阅者列表,将放入 Paginator 实例中。这个类有一个 next() 方法,它将执行另一个请求到 Campaign Monitor API 的下一页。

并非 Campaign Monitor API 的所有方法都可用。如果缺少某些方法,请随时提交问题。

我们也非常欢迎拉取请求!