hztiny/tiny-sms

Maintainers

Package info

github.com/hztiny/tiny-sms

pkg:composer/hztiny/tiny-sms

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

dev-main 2026-05-03 10:10 UTC

This package is auto-updated.

Last update: 2026-05-03 10:13:35 UTC


README

Install

composer require hztiny/tiny-sms

Usage

1. Define your Payload

use TinySms\Contracts\Payload;

class LoginPayload implements Payload
{
    public string $code;

    public function __construct(string $code)
    {
        $this->code = $code;
    }
}

2. Implement ContentProvider

use InvalidArgumentException;
use TinySms\Contracts\ContentProvider;
use TinySms\Contracts\Payload;

class AliyunLoginProvider implements ContentProvider
{
    public function getContent(Payload $payload): string
    {
        return '';
    }

    public function getTemplate(Payload $payload): string
    {
        return 'SMS_001';
    }

    public function getData(Payload $payload): array
    {
        if (! $payload instanceof LoginPayload) {
            throw new InvalidArgumentException('Expected LoginPayload');
        }

        return ['code' => $payload->code];
    }
}

3. Register and Send

use Overtrue\EasySms\EasySms;
use TinySms\Message;
use TinySms\Registry;
use TinySms\Sms;

// Configure EasySms
$easySms = new EasySms($config);

// Register providers
$registry = new Registry();
$registry->set('login', 'aliyun', new AliyunLoginProvider());

// Create Sms client
$sms = new Sms($easySms, $registry);

// Send
$message = new Message('login', new LoginPayload('8946'));
$result = $sms->sendMessage($phone, $message);

// Or
$payload = new LoginPayload('8946');
$result = $sms->send($phone, 'login', $payload);

License

The MIT License (MIT)