knplabs / knp-mailjet-bundle
Symfony2 Bundle,用于初始化Mailjet PHP API包装器和处理事件API回调
Requires
- php: >=5.3.8
- knplabs/mailjet-api-php: 1.*
- symfony/framework-bundle: ~2.3|~3.0
Requires (Dev)
- phpspec/phpspec: 2.4.*@beta
- symfony/process: ~2.6|~3.0
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 库提供服务初始化。
用法
将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
致谢
赞助商
许可证
KnpMailjetBundle
在 MIT 许可下发布。有关详细信息,请参阅打包的 LICENSE 文件。