PHPackages                             xin/sms - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Mail &amp; Notifications](/categories/mail)
4. /
5. xin/sms

ActiveLibrary[Mail &amp; Notifications](/categories/mail)

xin/sms
=======

基于 overtrue/easy-sms 的短信服务扩展包（适用于 Laravel、ThinkPHP 等主流框架），支持多种短信服务商，提供统一的 API 接口，方便在项目中集成短信发送功能

v1.1.0(6mo ago)0201PHPPHP &gt;=7.1.9

Since Dec 9Pushed 5mo agoCompare

[ Source](https://github.com/liuxiaojinla/php-sms)[ Packagist](https://packagist.org/packages/xin/sms)[ RSS](/packages/xin-sms/feed)WikiDiscussions main Synced 3w ago

READMEChangelogDependencies (3)Versions (6)Used By (1)

Xin\\Sms
========

[](#xinsms)

概述
--

[](#概述)

**Xin\\Sms** 是一个基于 `Overtrue\EasySms` 的短信发送管理器，提供了统一的短信发送接口和多渠道支持。

核心组件
----

[](#核心组件)

### SmsManager 类

[](#smsmanager-类)

- **继承自**：`Xin\Capsule\Manager`
- **实现接口**：`Xin\Sms\Contracts\Factory`
- **主要功能**：管理短信发送渠道和配置

### 主要常量

[](#主要常量)

- `DEFAULT_DRIVER_KEY`：默认驱动键名，值为 `'channel'`
- `DRIVER_CONFIG_KEY`：驱动配置键名，值为 `'channels'`

配置结构
----

[](#配置结构)

### 默认配置

[](#默认配置)

```
'defaults' => [
    'strategy' => OrderStrategy::class,  // 网关调用策略，默认顺序调用
    'gateways' => [],                   // 默认可用的发送网关
]
```

### 通道配置

[](#通道配置)

- 通道配置存储在 `channels` 键下
- 每个通道可以有独立的配置参数

主要方法
----

[](#主要方法)

### 1. 构造函数

[](#1-构造函数)

- **方法**：`__construct(array $config = [])`
- **功能**：初始化配置并合并默认配置

### 2. 通道管理

[](#2-通道管理)

- **方法**：`channel($name = null)`
- **功能**：获取指定名称的短信通道实例
- **返回**：通道实例

### 3. 驱动创建

[](#3-驱动创建)

- **方法**：`createDefaultDriver($name, array $config)`
- **功能**：创建默认驱动实例
- **返回**：`HigherOrderEasySmsProxy` 实例

### 4. 默认驱动管理

[](#4-默认驱动管理)

- **获取默认驱动**：`getDefaultDriver()` - 返回 `'default'`
- **设置默认驱动**：`setDefaultDriver($name)` - 设置默认驱动

### 5. 配置获取

[](#5-配置获取)

- **方法**：`getDriverConfig($name)`
- **功能**：获取指定驱动的配置信息

使用示例
----

[](#使用示例)

### 基本使用

[](#基本使用)

```
// 创建 SmsManager 实例
$smsManager = new Xin\Sms\SmsManager($config);

// 获取默认通道
$channel = $smsManager->channel();

// 获取指定名称的通道
$channel = $smsManager->channel('aliyun');
```

### 配置示例

[](#配置示例)

```
$config = [
    'defaults' => [
        'strategy' => \Overtrue\EasySms\Strategies\OrderStrategy::class,
        'channel' => 'default',
        'gateways' => [
            'aliyun',
            'qcloud'
        ],
    ],
    'channels' => [
        'aliyun' => [
            'access_key_id' => 'your-access-key',
            'access_key_secret' => 'your-secret-key',
            'sign_name' => 'your-sign-name',
        ],
        'qcloud' => [
            'sdk_app_id' => 'your-app-id',
            'secret_id' => 'your-secret-id',
            'secret_key' => 'your-secret-key',
        ]
    ]
];
```

内部服务
----

[](#内部服务)

### EasySms 服务

[](#easysms-服务)

- **方法**：`easySmsService()`
- **功能**：创建和管理 `EasySms` 实例
- **配置转换**：将 `defaults` 转换为 `default`，`channels` 转换为 `gateways`

注意事项
----

[](#注意事项)

1. **继承问题**：代码中存在拼写错误，`@inerhitDoc` 应该是 `@inheritDoc`
2. **配置键转换**：在创建 `EasySms` 实例时，配置键会进行转换（`defaults` → `default`，`channels` → `gateways`）
3. **代理模式**：通过 `HigherOrderEasySmsProxy` 提供对底层 `EasySms` 网关的访问

扩展性
---

[](#扩展性)

- 支持多种短信网关
- 支持策略模式（如顺序调用策略）
- 可通过配置灵活切换不同的短信服务商

###  Health Score

31

—

LowBetter than 66% of packages

Maintenance69

Regular maintenance activity

Popularity6

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity37

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~95 days

Total

5

Last Release

182d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/3197fcaedd3c78adfa6afadac36bef7a2a39ce0df8e53d0da1e839e238287ad0?d=identicon)[xin](/maintainers/xin)

---

Top Contributors

[![liuxiaojinla](https://avatars.githubusercontent.com/u/16009864?v=4)](https://github.com/liuxiaojinla "liuxiaojinla (8 commits)")

### Embed Badge

![Health badge](/badges/xin-sms/health.svg)

```
[![Health](https://phpackages.com/badges/xin-sms/health.svg)](https://phpackages.com/packages/xin-sms)
```

###  Alternatives

[leonis/easysms-notification-channel

EasySms Notification Channel for Laravel.

15841.0k](/packages/leonis-easysms-notification-channel)[ibrand/laravel-sms

ibrand laravel sms base overtrue's easy-sms

6926.4k7](/packages/ibrand-laravel-sms)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
