intracto / campaign-monitor-bundle
Campaign Monitor API 的 Symfony 扩展包
v0.5
2017-11-28 08:54 UTC
Requires
- php: >=5.3.2
- campaignmonitor/createsend-php: ^5.1
- symfony/symfony: >=2.4.0
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 的所有方法都可用。如果缺少某些方法,请随时提交问题。
我们也非常欢迎拉取请求!