digitalstate / platform-transport-bundle
数字状态传输包
0.3.0
2017-02-21 00:36 UTC
Requires
- php: >=5.6
- digitalstate/platform-admin-bundle: ~0.3.0
- digitalstate/platform-api-bundle: ~0.3.0
- digitalstate/platform-data-bundle: ~0.3.0
- digitalstate/platform-entity-bundle: ~0.3.0
- digitalstate/platform-widget-bundle: ~0.3.0
- oro/platform: 2.0.*
- oro/platform-serialised-fields: 2.0.*
This package is not auto-updated.
Last update: 2024-09-14 19:42:22 UTC
README
传输包为开发者提供了发送消息的底层基础和常用API。它向系统中引入了两个新的实体: Transport 和 Profile。
目录
传输实体
传输负责向收件人发送消息。例如,开发者可以定义一个能够通过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提供了根据你希望从不同地理区域发送消息的账户凭证。