Files
ulthon_admin/extend/base/common/notice/NoticeChannelInterface.php

35 lines
1.2 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace base\common\notice;
/**
* 通知投递渠道驱动契约.
*
* notice/ 为领域子模块目录:渠道驱动与传输客户端不是 service 注册服务,
* 放 service 树将违反 ulthon-naming-convention 的 Service 后缀规范,
* 参照 base\common\event、base\common\scheme 的独立模块目录先例;
* PSR-4 base\ → extend/base 自动可载。
*
* 实现约定:
* - name() 返回渠道标识(system_notice_target.channel 的取值,如 inmail/email)
* - send() 执行真实投递,抛出异常视为投递失败(消费者据此重试/置终态)
* - 驱动不做任何 DB 写入:投递行由 NoticeService::send() 统一落库,
* 消费者(timer 异步投递)按行状态调用本契约
*/
interface NoticeChannelInterface
{
/**
* 渠道标识.
*/
public static function name(): string;
/**
* 投递一条通知.
*
* @param array $target 投递行(system_notice_target 一行,含 channel/target_addr/status 等)
* @param array $notice 通知主体(system_notice 一行)
* @return bool 是否成功;抛出异常视为失败
*/
public function send(array $target, array $notice): bool;
}