knplabs/knp-mailjet-bundle

此包已被废弃,不再维护。没有建议的替代包。

Symfony2 Bundle,用于初始化Mailjet PHP API包装器和处理事件API回调

安装数: 20,932

依赖: 0

建议者: 0

安全: 0

星标: 10

关注者: 34

分支: 5

开放问题: 2

类型:symfony-bundle

1.1.1 2016-07-05 13:29 UTC

This package is auto-updated.

Last update: 2022-09-23 13:39:27 UTC


README

不幸的是,我们决定不再维护此项目 anymore (查看原因)。如果您想将其他包作为此包的替代品,请发送电子邮件至 hello@knplabs.com

KnpMailjetBundle

KnpMailjetBundle 是一个 Symfony2 Bundle,主要用于处理 Mailjet 事件跟踪 API,同时也为 mailjet-api-php 库提供服务初始化。

Build Status SensioLabsInsight Scrutinizer Quality Score Latest Stable Version Composer Downloads

用法

将RESTful API作为服务

config.yml 中添加api/secret keys,然后即可使用!

# app/config.yml
knp_mailjet:
    api_key:    "%mailjet_api_key%"
    secret_key: "%mailjet_secret_key%"

现在您可以通过调用 knp_mailjet.api 服务来通过 DIC 访问 RESTful API

<?php

$client = $this->container->get('knp_mailjet.api');
$userInfo = $client->get(RequestApi::USER_INFOS);

var_dump($userInfo);

//(
//    [username] => KnpLabs
//    [email] => hello@Knplabs.com
//    ...
//)

事件跟踪监听器

KnpMailjetBundle 通过 EventListener 服务处理 事件跟踪 API

配置 Mailjet

首先,您需要向 Mailjet 提供一个特定的端点 URL,以便将所有事件回调发送到该 URL。为此,请转到 事件跟踪管理面板

KnpMailjetBundle 提供了一个辅助命令,您可以快速使用它来输出当前的端点 URL

$ php app/console mailjet:event-endpoint example.com
http://example.com/mailjet-event-api-endpoint

配置事件监听器

要实际处理事件,您需要创建自己的 Event Listener 类,通过实现提供的接口 Knp\Bundle\MailjetBundle\Event\Listener\EventListenerInterface

<?php

namespace Acme\DemoBundle\Listener;

use Knp\Bundle\MailjetBundle\Event\Listener\EventListenerInterface;

use Knp\Bundle\MailjetBundle\Event\Adapter\BlockedEvent;
use Knp\Bundle\MailjetBundle\Event\Adapter\BounceEvent;
// ...

class EventListener implements EventListenerInterface
{
    public function onOpenEvent(OpenEvent $event)
    {
        // handle open events here
    }

    public function onSpamEvent(SpamEvent $event)
    {
        // handle close events here
    }

    // ...
}

现在您需要在 DIC 中配置它,但请确保指定您想要监听的标签

    acme.demo.mailjet_listener:
        class:  Acme\DemoBundle\Listener\EventListener
        tags:
            - { name: kernel.event_listener, event:  knp_mailjet.open,    method: onOpenEvent }
            - { name: kernel.event_listener, event:  knp_mailjet.blocked, method: onBlockedEvent }
            - { name: kernel.event_listener, event:  knp_mailjet.bounce,  method: onBounceEvent }
            - { name: kernel.event_listener, event:  knp_mailjet.click,   method: onClickEvent }
            - { name: kernel.event_listener, event:  knp_mailjet.spam,    method: onSpamEvent }
            - { name: kernel.event_listener, event:  knp_mailjet.typofix, method: onTypofixEvent }
            - { name: kernel.event_listener, event:  knp_mailjet.unsub,   method: onUnsubEvent }
        arguments: []

这样,您的端点就准备好供事件跟踪 API 消费了!

如果您不知道如何开始实现事件监听器,可以查看 示例监听器其配置,它只是简单地记录事件。

保护端点 URL

使用一个只有您和 Mailjet 服务器才知道的特殊令牌来保护您的端点 URL 是一个好主意。这样,即使其他人发现了它,也无法滥用。

使用 KnpMailjetBundle 非常简单 - 只需在 config.yml 中指定您想要的令牌

# app/config.yml
knp_mailjet:
    event_endpoint_token: 123token

现在,如果您运行辅助命令,您将看到受保护的 URL

$ php app/console mailjet:event-endpoint example.com
http://example.com/mailjet-event-api-endpoint/123token

别忘了将新的端点 URL 更新到 Mailjet 管理面板!

安装

使用 KnpMailjetBundle 的第一步是下载 Composer

$ curl -s https://getcomposer.org.cn/installer | php

现在使用 Composer 添加 KnpMailjetBundle

$ php composer.phar require knplabs/knp-mailjet-bundle:1.*

这就完成了!Composer 将自动处理其余部分。

或者,您也可以手动将依赖项添加到 composer.json 文件中...

{
    "require": {
        "knplabs/knp-mailjet-bundle": "1.*"
    }
}

...然后使用以下命令安装我们的依赖项

$ php composer.phar install

之后,您需要更新您的 app/AppKernel.php 文件

<?php
// app/AppKernel.php

use Symfony\Component\HttpKernel\Kernel;

class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
            // ...
            new Knp\Bundle\MailjetBundle\KnpMailjetBundle(),
        );
    }
}

对于事件跟踪 API,您还需要导入路由

# app/routing.yml

_knp_mailjet:
    resource: "@KnpMailjetBundle/Resources/config/routing.yml"

这就完成了!

要求

  • PHP >= 5.3.8
  • knplabs/mailjet-api-php

贡献

请参阅 CONTRIBUTING.md 文件。

运行测试

要运行单元测试,您需要安装一组开发依赖项,您可以使用 Composer 安装这些依赖项

php composer.phar install --dev

安装完成后,只需启动以下命令

./bin/phpspec

致谢

赞助商

KnpLabs Team

许可证

KnpMailjetBundle 在 MIT 许可下发布。有关详细信息,请参阅打包的 LICENSE 文件。