• Stars
    star
    3,068
  • Rank 14,104 (Top 0.3 %)
  • Language
    PHP
  • License
    MIT License
  • Created about 7 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

📲 一款满足你的多种发送需求的短信发送组件

Easy SMS

📲 一款满足你的多种发送需求的短信发送组件

Build Status Latest Stable Version Latest Unstable Version Code Coverage Total Downloads License

Sponsor me

特点

  1. 支持目前市面多家服务商
  2. 一套写法兼容所有平台
  3. 简单配置即可灵活增减服务商
  4. 内置多种服务商轮询策略、支持自定义轮询策略
  5. 统一的返回值格式,便于日志与监控
  6. 自动轮询选择可用的服务商
  7. 更多等你去发现与改进...

平台支持

环境需求

  • PHP >= 5.6

安装

$ composer require "overtrue/easy-sms"

For Laravel notification

如果你喜欢使用 Laravel Notification, 可以考虑直接使用朋友封装的拓展包:

https://github.com/yl/easysms-notification-channel

使用

use Overtrue\EasySms\EasySms;

$config = [
    // HTTP 请求的超时时间(秒)
    'timeout' => 5.0,

    // 默认发送配置
    'default' => [
        // 网关调用策略,默认:顺序调用
        'strategy' => \Overtrue\EasySms\Strategies\OrderStrategy::class,

        // 默认可用的发送网关
        'gateways' => [
            'yunpian', 'aliyun',
        ],
    ],
    // 可用的网关配置
    'gateways' => [
        'errorlog' => [
            'file' => '/tmp/easy-sms.log',
        ],
        'yunpian' => [
            'api_key' => '824f0ff2f71cab52936axxxxxxxxxx',
        ],
        'aliyun' => [
            'access_key_id' => '',
            'access_key_secret' => '',
            'sign_name' => '',
        ],
        //...
    ],
];

$easySms = new EasySms($config);

$easySms->send(13188888888, [
    'content'  => '您的验证码为: 6379',
    'template' => 'SMS_001',
    'data' => [
        'code' => 6379
    ],
]);

短信内容

由于使用多网关发送,所以一条短信要支持多平台发送,每家的发送方式不一样,但是我们抽象定义了以下公用属性:

  • content 文字内容,使用在像云片类似的以文字内容发送的平台
  • template 模板 ID,使用在以模板ID来发送短信的平台
  • data 模板变量,使用在以模板ID来发送短信的平台

所以,在使用过程中你可以根据所要使用的平台定义发送的内容。

$easySms->send(13188888888, [
    'content'  => '您的验证码为: 6379',
    'template' => 'SMS_001',
    'data' => [
        'code' => 6379
    ],
]);

你也可以使用闭包来返回对应的值:

$easySms->send(13188888888, [
    'content'  => function($gateway){
        return '您的验证码为: 6379';
    },
    'template' => function($gateway){
        return 'SMS_001';
    },
    'data' => function($gateway){
        return [
            'code' => 6379
        ];
    },
]);

你可以根据 $gateway 参数类型来判断返回值,例如:

$easySms->send(13188888888, [
    'content'  => function($gateway){
        if ($gateway->getName() == 'yunpian') {
            return '云片专用验证码:1235';
        }
        return '您的验证码为: 6379';
    },
    'template' => function($gateway){
        if ($gateway->getName() == 'aliyun') {
            return 'TP2818';
        }
        return 'SMS_001';
    },
    'data' => function($gateway){
        return [
            'code' => 6379
        ];
    },
]);

发送网关

默认使用 default 中的设置来发送,如果某一条短信你想要覆盖默认的设置。在 send 方法中使用第三个参数即可:

$easySms->send(13188888888, [
    'content'  => '您的验证码为: 6379',
    'template' => 'SMS_001',
    'data' => [
        'code' => 6379
    ],
 ], ['yunpian', 'juhe']); // 这里的网关配置将会覆盖全局默认值

返回值

由于使用多网关发送,所以返回值为一个数组,结构如下:

[
    'yunpian' => [
        'gateway' => 'yunpian',
        'status' => 'success',
        'result' => [...] // 平台返回值
    ],
    'juhe' => [
        'gateway' => 'juhe',
        'status' => 'failure',
        'exception' => \Overtrue\EasySms\Exceptions\GatewayErrorException 对象
    ],
    //...
]

如果所选网关列表均发送失败时,将会抛出 Overtrue\EasySms\Exceptions\NoGatewayAvailableException 异常,你可以使用 $e->results 获取发送结果。

你也可以使用 $e 提供的更多便捷方法:

$e->getResults();               // 返回所有 API 的结果,结构同上
$e->getExceptions();            // 返回所有调用异常列表
$e->getException($gateway);     // 返回指定网关名称的异常对象
$e->getLastException();         // 获取最后一个失败的异常对象

自定义网关

本拓展已经支持用户自定义网关,你可以很方便的配置即可当成与其它拓展一样的使用:

$config = [
    ...
    'default' => [
        'gateways' => [
            'mygateway', // 配置你的网站到可用的网关列表
        ],
    ],
    'gateways' => [
        'mygateway' => [...], // 你网关所需要的参数,如果没有可以不配置
    ],
];

$easySms = new EasySms($config);

// 注册
$easySms->extend('mygateway', function($gatewayConfig){
    // $gatewayConfig 来自配置文件里的 `gateways.mygateway`
    return new MyGateway($gatewayConfig);
});

$easySms->send(13188888888, [
    'content'  => '您的验证码为: 6379',
    'template' => 'SMS_001',
    'data' => [
        'code' => 6379
    ],
]);

国际短信

国际短信与国内短信的区别是号码前面需要加国际码,但是由于各平台对国际号码的写法不一致,所以在发送国际短信的时候有一点区别:

use Overtrue\EasySms\PhoneNumber;

// 发送到国际码为 31 的国际号码
$number = new PhoneNumber(13188888888, 31);

$easySms->send($number, [
    'content'  => '您的验证码为: 6379',
    'template' => 'SMS_001',
    'data' => [
        'code' => 6379
    ],
]);

定义短信

你可以根据发送场景的不同,定义不同的短信类,从而实现一处定义多处调用,你可以继承 Overtrue\EasySms\Message 来定义短信模型:

<?php

use Overtrue\EasySms\Message;
use Overtrue\EasySms\Contracts\GatewayInterface;
use Overtrue\EasySms\Strategies\OrderStrategy;

class OrderPaidMessage extends Message
{
    protected $order;
    protected $strategy = OrderStrategy::class;           // 定义本短信的网关使用策略,覆盖全局配置中的 `default.strategy`
    protected $gateways = ['alidayu', 'yunpian', 'juhe']; // 定义本短信的适用平台,覆盖全局配置中的 `default.gateways`

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

    // 定义直接使用内容发送平台的内容
    public function getContent(GatewayInterface $gateway = null)
    {
        return sprintf('您的订单:%s, 已经完成付款', $this->order->no);
    }

    // 定义使用模板发送方式平台所需要的模板 ID
    public function getTemplate(GatewayInterface $gateway = null)
    {
        return 'SMS_003';
    }

    // 模板参数
    public function getData(GatewayInterface $gateway = null)
    {
        return [
            'order_no' => $this->order->no
        ];
    }
}

更多自定义方式请参考:Overtrue\EasySms\Message

发送自定义短信:

$order = ...;
$message = new OrderPaidMessage($order);

$easySms->send(13188888888, $message);

各平台配置说明

阿里云

短信内容使用 template + data

    'aliyun' => [
        'access_key_id' => '',
        'access_key_secret' => '',
        'sign_name' => '',
    ],

阿里云Rest

短信内容使用 template + data

    'aliyunrest' => [
        'app_key' => '',
        'app_secret_key' => '',
        'sign_name' => '',
    ],

阿里云国际

短信内容使用 template + data

    'aliyunintl' => [
        'access_key_id' => '',
        'access_key_secret' => '',
        'sign_name' => '',
    ],

发送示例:

use Overtrue\EasySms\PhoneNumber;

$easySms = new EasySms($config);
$phone_number = new PhoneNumber(18888888888, 86);

$easySms->send($phone_number, [
    'content' => '您好:先生/女士!您的验证码为${code},有效时间是5分钟,请及时验证。',
    'template' => 'SMS_00000001', // 模板ID
    'data' => [
        "code" => 521410,
    ],
]);

云片

短信内容使用 content

    'yunpian' => [
        'api_key' => '',
        'signature' => '【默认签名】', // 内容中无签名时使用
    ],

Submail

短信内容使用 data

    'submail' => [
        'app_id' => '',
        'app_key' => '',
        'project' => '', // 默认 project,可在发送时 data 中指定
    ],

螺丝帽

短信内容使用 content

    'luosimao' => [
        'api_key' => '',
    ],

容联云通讯

短信内容使用 template + data

    'yuntongxun' => [
        'app_id' => '',
        'account_sid' => '',
        'account_token' => '',
        'is_sub_account' => false,
    ],

互亿无线

短信内容使用 content

    'huyi' => [
        'api_id' => '',
        'api_key' => '',
        'signature' => '',
    ],

聚合数据

短信内容使用 template + data

    'juhe' => [
        'app_key' => '',
    ],

SendCloud

短信内容使用 template + data

    'sendcloud' => [
        'sms_user' => '',
        'sms_key' => '',
        'timestamp' => false, // 是否启用时间戳
    ],

百度云

短信内容使用 template + data

    'baidu' => [
        'ak' => '',
        'sk' => '',
        'invoke_id' => '',
        'domain' => '',
    ],

华信短信平台

短信内容使用 content

    'huaxin' => [
        'user_id'  => '',
        'password' => '',
        'account'  => '',
        'ip'       => '',
        'ext_no'   => '',
    ],

253云通讯(创蓝)

短信内容使用 content

    'chuanglan' => [
        'account' => '',
        'password' => '',

        // 国际短信时必填
        'intel_account' => '',
        'intel_password' => '',

        // \Overtrue\EasySms\Gateways\ChuanglanGateway::CHANNEL_VALIDATE_CODE  => 验证码通道(默认)
        // \Overtrue\EasySms\Gateways\ChuanglanGateway::CHANNEL_PROMOTION_CODE => 会员营销通道
        'channel'  => \Overtrue\EasySms\Gateways\ChuanglanGateway::CHANNEL_VALIDATE_CODE,

        // 会员营销通道 特定参数。创蓝规定:api提交营销短信的时候,需要自己加短信的签名及退订信息
        'sign' => '【通讯云】',
        'unsubscribe' => '回TD退订',
    ],

创蓝云智

普通短信发送内容使用 content

    'chuanglanv1' => [
        'account' => '',
        'password' => '',
        'needstatus' => false,
        'channel' => \Overtrue\EasySms\Gateways\ChuanglanV1Gateway::CHANNEL_NORMAL_CODE,
    ],

发送示例:

$easySms->send(18888888888, [
    'content' => xxxxxxx
]);

变量短信发送内容使用 template + data

    'chuanglanv1' => [
        'account' => '',
        'password' => '',
        'needstatus' => false,
        'channel' => \Overtrue\EasySms\Gateways\ChuanglanV1Gateway::CHANNEL_VARIABLE_CODE,
    ],

发送示例:

$easySms->send(18888888888, [
    'template' => xxxxxx, // 模板内容
    'data' => 'phone":"15800000000,1234;15300000000,4321',
]);

融云

短信分为两大类,验证类和通知类短信。 发送验证类短信使用 template + data

    'rongcloud' => [
        'app_key' => '',
        'app_secret' => '',
    ]

天毅无线

短信内容使用 content

    'tianyiwuxian' => [
        'username' => '', //用户名
        'password' => '', //密码
        'gwid' => '', //网关ID
    ]

twilio

短信使用 content 发送对象需要 使用+添加区号

    'twilio' => [
        'account_sid' => '', // sid
        'from' => '', // 发送的号码 可以在控制台购买
        'token' => '', // apitoken
    ],

tiniyo

短信使用 content 发送对象需要 使用+添加区号

    'tiniyo' => [
        'account_sid' => '', // auth_id from https://tiniyo.com
        'from' => '', // 发送的号码 可以在控制台购买
        'token' => '', // auth_secret from https://tiniyo.com
    ],

腾讯云 SMS

短信内容使用 template + data

    'qcloud' => [
        'sdk_app_id' => '', // 短信应用的 SDK APP ID
        'secret_id' => '', // SECRET ID
        'secret_key' => '', // SECRET KEY
        'sign_name' => '腾讯CoDesign', // 短信签名
    ],

发送示例:

$easySms->send(18888888888, [
    'template' => 101234, // 模板ID
    'data' => [
        "a", 'b', 'c', 'd', //按占位顺序给值
    ],
]);

阿凡达数据

短信内容使用 template + data

    'avatardata' => [
        'app_key' => '', // APP KEY
    ],

华为云 SMS

短信内容使用 template + data

    'huawei' => [
        'endpoint' => '', // APP接入地址
        'app_key' => '', // APP KEY
        'app_secret' => '', // APP SECRET
        'from' => [
            'default' => '1069012345', // 默认使用签名通道号
            'custom' => 'csms12345', // 其他签名通道号 可以在 data 中定义 from 来指定
            'abc' => 'csms67890', // 其他签名通道号
            ...
        ],
        'callback' => '' // 短信状态回调地址
    ],

使用默认签名通道 default

$easySms->send(13188888888, [
    'template' => 'SMS_001',
    'data' => [
        6379
    ],
]);

使用指定签名通道

$easySms->send(13188888888, [
    'template' => 'SMS_001',
    'data' => [
        6379,
        'from' => 'custom' // 对应 config 中的 from 数组中 custom
    ],
]);

网易云信

短信内容使用 template + data

    'yunxin' => [
        'app_key' => '',
        'app_secret' => '',
        'code_length' => 4, // 随机验证码长度,范围 4~10,默认为 4
        'need_up' => false, // 是否需要支持短信上行
    ],
$easySms->send(18888888888, [
    'template' => 'SMS_001',    // 不填则使用默认模板
    'data' => [
        'code' => 8946, // 如果设置了该参数,则 code_length 参数无效
        'action' => 'sendCode', // 默认为 `sendCode`,校验短信验证码使用 `verifyCode`
    ],
]);

云之讯

短信内容使用 template + data

    'yunzhixun' => [
        'sid' => '',
        'token' => '',
        'app_id' => '',
    ],
$easySms->send(18888888888, [
    'template' => 'SMS_001',
    'data' => [
        'params' => '8946,3',   // 模板参数,多个参数使用 `,` 分割,模板无参数时可为空
        'uid' => 'hexianghui',  // 用户 ID,随状态报告返回,可为空
        'mobiles' => '18888888888,188888888889',    // 批量发送短信,手机号使用 `,` 分割,不使用批量发送请不要设置该参数
    ],
]);

凯信通

短信内容使用 content

    'kingtto'  => [
        'userid'   => '',
        'account'  => '',
        'password' => '',
    ],
$easySms->send(18888888888, [
    'content'  => '您的验证码为: 6379',
]);

七牛云

短信内容使用 template + data

    'qiniu' => [
        'secret_key' => '',
        'access_key' => '',
    ],
$easySms->send(18888888888, [
    'template' => '1231234123412341234',
    'data' => [
        'code' => 1234,
    ],
]);

Ucloud

短信使用 template + data

  'ucloud' => [
        'private_key'  => '',    //私钥
        'public_key'   => '',    //公钥
        'sig_content'  => '',    // 短信签名,
        'project_id'   => '',    //项目ID,子账号才需要该参数
    ],
$easySms->send(18888888888, [
    'template' => 'UTAXXXXX',       //短信模板
    'data' => [
        'code' => 1234,     //模板参数,模板没有参数不用则填写,有多个参数请用数组,[1111,1111]
        'mobiles' =>'',     //同时发送多个手机短信,请用数组[xxx,xxx]
    ],
]);

短信宝

短信使用 content

  'smsbao' => [
        'user'  => '',    //账号
        'password'   => ''   //密码
    ],
$easySms->send(18888888888, [
    'content' => '您的验证码为: 6379',       //短信模板
]);

摩杜云

短信使用 template + data

  'moduyun' => [
        'accesskey' => '',  //必填 ACCESS KEY
        'secretkey' => '',  //必填 SECRET KEY
        'signId'    => '',  //选填 短信签名,如果使用默认签名,该字段可缺省
        'type'      => 0,   //选填 0:普通短信;1:营销短信
    ],
$easySms->send(18888888888, [
    'template' => '5a95****b953',   //短信模板
    'data' => [
        1234,   //模板参数,对应模板的{1}
        30      //模板参数,对应模板的{2}
        //...
    ],
]);

融合云(助通)

短信使用 template + data

  'rongheyun' => [
        'username' => '',  //必填 用户名
        'password' => '',  //必填 密码
        'signature'=> '',  //必填 已报备的签名
    ],
$easySms->send(18888888888, [
    'template' => '31874',   //短信模板
    'data' => [
        'valid_code' => '888888',   //模板参数,对应模板的{valid_code}
        //...
    ],
]);

蜘蛛云

短信使用 template + data

  'zzyun' => [
        'user_id' => '',    //必填 会员ID
        'secret' => '',     //必填 接口密钥
        'sign_name'=> '',   //必填 短信签名
    ],
$easySms->send(18888888888, [
    'template' => 'SMS_210317****',   //短信模板
    'data' => [
        'code' => '888888',   //模板参数,对应模板的{code}
        //...
    ],
]);

融合云信

短信使用 template + data

  'maap' => [
        'cpcode' => '',    //必填 商户编码
        'key' => '',     //必填 接口密钥
        'excode'=> '',   //选填 扩展名
    ],
$easySms->send(18888888888, [
    'template' => '356120',   //短信模板
    'data' => [
        '123465'
    ],//模板参数
]);

天瑞云

短信内容使用 template + data

    'tinree' => [
        'accesskey' => '', // 平台分配给用户的accesskey
        'secret' => '', // 平台分配给用户的secret
        'sign' => '', // 平台上申请的接口短信签名或者签名ID
    ],

发送示例:

$easySms->send(18888888888, [
    'template' => '123456', // 模板ID
    'data' => [
        "a", 'b', 'c', //按模板变量占位顺序
    ],
]);

火山引擎

短信内容使用 template + data

    'volcengine' => [
        'access_key_id' => '', // 平台分配给用户的access_key_id
        'access_key_secret' => '', // 平台分配给用户的access_key_secret
        'region_id' => 'cn-north-1', // 国内节点 cn-north-1,国外节点 ap-singapore-1,不填或填错,默认使用国内节点
        'sign_name' => '', // 平台上申请的接口短信签名或者签名ID,可不填,发送短信时data中指定
        'sms_account' => '', // 消息组帐号,火山短信页面右上角,短信应用括号中的字符串,可不填,发送短信时data中指定
    ],

发送示例1:

$easySms->send(18888888888, [
    'template' => 'SMS_123456', // 模板ID
    'data' => [
       "code" => 1234 // 模板变量
    ],
]);

发送示例2:

$easySms->send(18888888888, [
    'template' => 'SMS_123456', // 模板ID
    'data' => [
        "template_param" => ["code" => 1234], // 模板变量参数
        "sign_name" => "yoursignname", // 签名,覆盖配置文件中的sign_name
        "sms_account" => "yoursmsaccount", // 消息组帐号,覆盖配置文件中的sms_account
        "phone_numbers" => "18888888888,18888888889", // 手机号,批量发送,英文的逗号连接多个手机号,覆盖发送方法中的填入的手机号
    ],
]);

❤️ 支持我

Sponsor me

如果你喜欢我的项目并想支持它,点击这里 ❤️

Project supported by JetBrains

Many thanks to Jetbrains for kindly providing a license for me to work on this and other open-source projects.

PHP 扩展包开发

想知道如何从零开始构建 PHP 扩展包?

请关注我的实战课程,我会在此课程中分享一些扩展开发经验 —— 《PHP 扩展包实战教程 - 从入门到发布》

License

MIT

More Repositories

1

pinyin

🇨🇳 基于词库的中文转拼音优质解决方案
PHP
4,211
star
2

share.js

一键分享到微博、QQ空间、QQ好友、微信、腾讯微博、豆瓣、Facebook、Twitter、Linkedin、Google+、点点等
JavaScript
3,670
star
3

laravel-wechat

微信 SDK for Laravel, 基于 overtrue/wechat
PHP
2,847
star
4

socialite

Socialite is an OAuth2 Authentication tool. It is inspired by laravel/socialite, you can easily use it without Laravel.
PHP
1,280
star
5

laravel-lang

🌏 75 languages support for Laravel application.
PHP
1,271
star
6

laravel-follow

❤️ This package helps you to add user based follow system to your model.
PHP
1,145
star
7

api.yike.io

一刻社区后端 API 源码
PHP
1,019
star
8

phplint

🐛 A tool that can speed up linting of php files by running several lint processes at once.
PHP
963
star
9

yike.io

一刻社区前端源码
Vue
653
star
10

laravel-pinyin

🇨🇳 Chinese to Pinyin translator for Laravel 5 / Lumen
PHP
524
star
11

chinese-calendar

📅 中国农历(阴历)与阳历(公历)转换与查询工具
PHP
513
star
12

vue-avatar-cropper

👧 A simple and elegant avatar cropping and upload plugin.
JavaScript
497
star
13

laravel-filesystem-qiniu

A Qiniu Storage filesystem for Laravel
PHP
471
star
14

laravel-versionable

⏱️Make Laravel model versionable
PHP
445
star
15

laravel-like

👍 User-like features for Laravel Application.
PHP
431
star
16

laravel-query-logger

📝 A dev tool to log all queries for laravel application.
PHP
403
star
17

laravel-ueditor

UEditor integration for Laravel.
JavaScript
391
star
18

laravel-shopping-cart

🛒 Shopping cart for Laravel Application.
PHP
390
star
19

laravel-favorite

❤️ User favorite feature for Laravel Application.
PHP
385
star
20

laravel-socialite

:octocat: Social OAuth Authentication for Laravel 5. drivers: facebook, github, google, linkedin, weibo, qq, wechat and douban
PHP
333
star
21

latest-laravel

【不再更新】这些东西本不应该存在。
Shell
282
star
22

weibo-dogs-killer

一段屏蔽 HWB(微博监督员) 的 js 小脚本
274
star
23

wisteria

Beautiful document tool for your project.
Blade
255
star
24

flysystem-qiniu

💾 Flysystem adapter for the Qiniu storage.
PHP
221
star
25

package-builder

📦 A composer package builder.
PHP
199
star
26

weather

🌈 基于高德开放平台接口的 PHP 天气信息组件。
PHP
171
star
27

yike

PHP
165
star
28

laravel-subscribe

📧 User Subscribe/Unsubscribe features for Laravel Application.
PHP
164
star
29

laravel-emoji

😄 This package assist you in getting started with emoji easily.
PHP
150
star
30

vscode-miniapp-helper

微信小程序开发助手 for VSCode
JavaScript
149
star
31

yaf-skeleton

The Yaf testable skeleton and composer supported.
PHP
142
star
32

laravel-skeleton

Laravel Application skeleton for me.
PHP
140
star
33

laravel-uploader

🌴 An upload component for Laravel.
PHP
135
star
34

http

🌵 A simple http client wrapper.
PHP
127
star
35

writor

基于 Laravel 4 开发的博客系统
JavaScript
125
star
36

pinyin-resources

汉字拼音相关参考资料
122
star
37

laravel-vote

⬆️ ⬇️ User vote system for Laravel Application.
PHP
102
star
38

validation

Laravel Validation 简化无依赖版
PHP
99
star
39

bootstrap-theme-slim

纤细风格的bootstrap主题
HTML
92
star
40

city.js

城市选择控件
92
star
41

laravel-payment

Omnipay ServiceProvider for Laravel.
PHP
92
star
42

laravel-passport-cache-token

Make laravel/passport token cacheable.
PHP
88
star
43

laravel-filesystem-cos

Tencent Cloud COS storage for Laravel based on overtrue/flysystem-cos.
PHP
83
star
44

blog

安正超博客
Less
74
star
45

rester

基于 Slim+Eloquent 的 RESTful API 框架
PHP
72
star
46

flysystem-cos

💾 Flysystem adapter for the Qcloud COS storage.
PHP
72
star
47

laravel-mail-aliyun

📧 Aliyun DrirectMail Transport for Laravel Application.
PHP
71
star
48

php-opencc

中文简繁转换,支持词汇级别的转换、异体字转换和地区习惯用词转换(中国大陆、台湾、香港、日本新字体)。
PHP
61
star
49

laravel-youzan

【停止维护】Youzan wrapper for Laravel
PHP
59
star
50

websocket

A PHP implementation of WebSocket.
PHP
56
star
51

laravel.xyz

Source code of https://laravel.xyz
Vue
50
star
52

json-viewer

A tool for make JSON view in browser.
JavaScript
49
star
53

laravel-options

Global options module for Laravel application.
PHP
49
star
54

php-package

A PHP package template repository.
44
star
55

building-with-tailwindcss

HTML
43
star
56

phpmd-rulesets

PHP_MD 规则
42
star
57

laravel-qcloud-content-audit

腾讯云内容安全(文字图片内容审核)服务
PHP
42
star
58

sketch-data-cn

为 Sketch 准备的模拟数据中文版,包含:中文姓名,手机号,省份,城市,地区,公司名,银行名,星期几,详情地址,邮编,邮箱,颜色,广告词等。
41
star
59

qcloud-cos-client

Tencent COS Client
PHP
40
star
60

validator.js

一个类似laravel的js验证模块.
JavaScript
39
star
61

translator

PHP多语言支持工具
PHP
38
star
62

laravel-payable

Payment system for Laravel.
PHP
35
star
63

laravel-package

Laravel package template
PHP
35
star
64

laravel-revaluation

Laravel 5 model revaluation helper.
PHP
31
star
65

laravel-easy-sms

overtrue/easy-sms service provider for Laravel.
PHP
25
star
66

laravel-saml

SAML toolkit for Laravel based on OneLogin's SAML PHP Toolkit.
PHP
20
star
67

sendcloud

SendCloud Mail SDK
PHP
20
star
68

laravel-sendcloud

SendCloud Mail SDK for Laravel.
PHP
20
star
69

latest-lumen

【不再更新】这些东西本不应该存在。
Shell
19
star
70

laravel-stateless-session

A lightweight middleware to make api routing session capable.
PHP
18
star
71

laravel-single-session

A plugin provide single session authentication for Laravel 5.
PHP
17
star
72

laravel-passport-cache-client

Make laravel/passport client cacheable.
PHP
17
star
73

php-multi-process-runner

基于PHP拓展PCNTL的多进程执行工具
PHP
17
star
74

laravel-summernote

Summernote editor integration for Laravel 5.
JavaScript
16
star
75

cuttle

📃 A multi-module log wrapper.
PHP
15
star
76

laravel-qcloud-federation-token

QCloud COS FederationToken generator for Laravel.
PHP
15
star
77

stuq-laravel-course

StuQ小班课|Laravel实战经验分享及PHP后端编程思想
PHP
13
star
78

laravel.so

Source Code of http://laravel.so (old)
PHP
13
star
79

double-array-trie

PHP
12
star
80

overtrue

https://overtrue.me
12
star
81

bash-color

Generate command line colorized text.
PHP
12
star
82

pinyin-dictionary-maker

📇 Dictionary make of overtrue/pinyin.
PHP
12
star
83

relocator.js

relocate images to fit image box
JavaScript
11
star
84

laravel-open-telemetry

This package provides a simple way to add OpenTelemetry to your Laravel application.
PHP
11
star
85

youzan

【不再维护】Youzan SDK.
PHP
10
star
86

wisteria-skeleton

The skeleton of Wisteria.
PHP
10
star
87

wp-cn-excerpt

wordpress中文摘要插件
PHP
10
star
88

laravel-custom-log

📃 Make Laravel Log great again.
PHP
9
star
89

laravel-qcloud-captcha

QCloud Captcha service validator for Laravel.
PHP
7
star
90

editorjs-with-tailwindcss-in-react

create-react-app + Editorjs + Tailwindcss
JavaScript
7
star
91

vue-avatar-cropper-demo

Created with CodeSandbox
Vue
7
star
92

string2pinyin.sinaapp.com

PHP
3
star
93

responsive-preview-container

A simple and elegant responsive preview container
Vue
3
star
94

nuxt-dashboard

CSS
3
star
95

wp-auto-top

WordPress 返回顶部插件
PHP
2
star
96

redius.xyz

wip
2
star
97

overtrue.github.io

HTML
2
star
98

username-blacklist

PHP
2
star
99

dex-swap-test

JavaScript
1
star
100

easywechat-theme

Vue
1
star