digitalstate/platform-transport-bundle

数字状态传输包

安装: 152

依赖项: 2

建议者: 0

安全: 0

星标: 0

关注者: 5

分支: 2

类型:symfony-bundle

0.3.0 2017-02-21 00:36 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:42:22 UTC


README

传输包为开发者提供了发送消息的底层基础和常用API。它向系统中引入了两个新的实体: TransportProfile

Code Climate Test Coverage

目录

传输实体

传输负责向收件人发送消息。例如,开发者可以定义一个能够通过Twilio SMS发送消息的传输。

内部,每个传输都与一个PHP类相关联。要创建传输类,开发者需要实现 传输接口

示例 src/Gov/Bundle/DemoBundle/Transport/Sms/TwilioTransport.php

<?php

namespace Gov\Bundle\DemoBundle\Transport\Sms;

use Ds\Bundle\TransportBundle\Transport\Transport;
use Ds\Bundle\TransportBundle\Model\Message;
use Ds\Bundle\TransportBundle\Entity\Profile;
use UnexpectedValueException;

class TwilioTransport implements Transport
{
    // ...
    
    public function send(Message $message, Profile $profile = null)
    {
        // Use Twilio SDK to send message.
        // ...
        $success = true;
        //

        if (!$success) {
            throw new UnexpectedValueException('Message could not be sent.');
        }

        return $this;
    }
}

传输类需要在Symfony服务容器中注册,并带有 ds.transport 标签。

示例 src/Gov/Bundle/DemoBundle/Resources/config/services.yml

services:
    gov.demo.transport.sms.twilio:
        class: Gov\Bundle\DemoBundle\Transport\Sms\TwilioTransport
        tags:
            - { name: ds.transport, implementation: sms.twilio }

implementation 属性是一个字符串值,用于程序化地标识传输,并且应该是唯一的。

配置实体

配置与传输相关联,并定义了该传输所需的配置。例如,主机名、用户名、密码、API密钥、密钥等。例如,一个商业用户可以通过管理界面创建一个配置,将其与Twilio传输相关联,并提供所需的配置,如Twilio API密钥和凭证。

可以为单个传输创建多个配置。商业用户可能会在发送特定消息时选择使用哪个配置。例如,Twilio提供了根据你希望从不同地理区域发送消息的账户凭证。

待办事项