Download the PHP package toplan/phpsms without Composer

On this page you can find all versions of the php package toplan/phpsms. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package phpsms

PhpSms

StyleCI Build Status Code Coverage Latest Stable Version Total Downloads

可能是目前最聪明、优雅的 php 短信发送库了。

phpsms的任务均衡调度功能由toplan/task-balancer提供。

特别感谢以下赞助者:

短信宝

特点

服务商

服务商 模板短信 内容短信 语音验证码 最低消费 最低消费单价 资费标准
Luosimao × ¥850(1万条) ¥0.085/条 资费标准
云片网络 × ¥55(1千条) ¥0.055/条 资费标准
容联·云通讯 × 充值¥500 ¥0.055/条 资费标准
SUBMAIL × ¥100(1千条) ¥0.100/条 资费标准
云之讯 × -- ¥0.050/条 资费标准
聚合数据 × -- ¥0.035/条 资费标准
阿里大鱼 × -- ¥0.045/条 资费标准
SendCloud × -- ¥0.048/条 资费标准
短信宝 × ¥5(50条) ¥0.040/条(100万条) 资费标准
腾讯云 -- ¥0.045/条 资费标准
阿里云 × × -- ¥0.045/条 资费标准

安装

开发中版本

快速上手

1. 配置

为你需要用到的短信服务商(即代理器)配置必要的参数。可以在config\phpsms.php中键为agents的数组中配置,也可以手动在程序中设置,示例如下:

可在config\phpsms.php中键为scheme的数组中配置。也可以手动在程序中设置,示例如下:

调度方案解析: 如果按照以上配置,那么系统首次会尝试使用LuosimaoYunPian发送短信,且它们被使用的概率分别为2/31/3。 如果使用其中一个代理器发送失败,那么会启用备用代理器,按照配置可知备用代理器有YunPianSmsBao,那么会依次调用直到发送成功或无备用代理器可用。 值得注意的是,如果首次尝试的是YunPian,那么备用代理器将会只使用SmsBao,也就是会排除使用过的代理器。

2. Enjoy it!

3. 在laravel和lumen中使用

生成的配置文件为config/phpsms.php,然后在该文件中按提示配置。

详见API,示例:

API

API - 全局配置

Sms::scheme([$name[, $scheme]])

设置/获取代理器的调度方案。

调度配置支持热更新,即在应用系统的整个运行过程中都能随时修改。

手动设置代理器调度方案(优先级高于配置文件),如:

通过该方法还能获取所有或指定代理器的调度方案,如:

scheme静态方法的更多使用方法见高级调度配置

Sms::config([$name[, $config][, $override]]);

设置/获取代理器的配置数据。

参数配置支持热更新,即在应用系统的整个运行过程中都能随时修改。

手动设置代理器的配置数据(优先级高于配置文件),如:

通过该方法还能获取所有或指定代理器的配置参数,如:

Sms::beforeSend($handler[, $override]);

发送前钩子,示例:

更多细节请查看 task-balancerbeforeRun 钩子

Sms::beforeAgentSend($handler[, $override]);

代理器发送前钩子,示例:

更多细节请查看 task-balancerbeforeDriverRun 钩子

Sms::afterAgentSend($handler[, $override]);

代理器发送后钩子,示例:

更多细节请查看 task-balancerafterDriverRun 钩子

Sms::afterSend($handler[, $override]);

发送后钩子,示例:

更多细节请查看 task-balancerafterRun 钩子

Sms::queue([$enable[, $handler]])

该方法可以设置是否启用队列以及定义如何推送到队列。

$handler匿名函数可使用的参数:

定义如何推送到队列:

如果已经定义过如何推送到队列,还可以继续设置关闭/开启队列:

获取队列启用情况:

API - 发送相关

Sms::make()

生成发送短信的sms实例,并返回实例。

Sms::voice()

生成发送语音验证码的sms实例,并返回实例。

  • 如果你使用Luosimao语音验证码,还需用在配置文件中Luosimao选项中设置voiceApikey
  • 语音文件ID即是在服务商配置的语音文件的唯一编号,比如阿里大鱼语音通知voice_code
  • 模版语音是另一种语音请求方式,它是通过模版ID和模版数据进行的语音请求,比如阿里大鱼的文本转语音通知

type($type)

设置实例类型,可选值有Sms::TYPE_SMSSms::TYPE_VOICE,返回实例对象。

to($mobile)

设置发送给谁,并返回实例。

template($agentName, $id)

指定代理器设置模版或批量设置,并返回实例。

data($key, $value)

设置模板短信的模板数据,并返回实例对象。

通过templatedata方法的组合除了可以实现模版短信的数据填充,还可以实现模版语音的数据填充。

content($text)

设置内容短信的内容,并返回实例对象。

一些内置的代理器(如SmsBao、YunPian、Luosimao)使用的是内容短信(即直接发送短信内容),那么就需要为它们设置短信内容。

code($code)

设置语音验证码,并返回实例对象。

file($agentName, $id)

设置语音文件,并返回实例对象。

params($agentName, $params)

直接设置参数到服务商提供的原生接口上,并返回实例对象。

all([$key])

获取Sms实例中的短信数据,不带参数时返回所有数据,其结构如下:

agent($name)

临时设置发送时使用的代理器(不会影响备用代理器的正常使用),并返回实例,$name为代理器名称。

通过该方法设置的代理器将获得绝对优先权,但只对当前短信实例有效。

send()

请求发送短信/语音验证码。

$result数据结构请参看task-balancer

自定义代理器

可将配置项(如果有用到)加入到config/phpsms.php中键为agents的数组里。

新建一个继承Toplan\PhpSms\Agent抽象类的代理器类,建议代理器类名为FooAgent,建议命名空间为Toplan\PhpSms

如果类名不为FooAgent或者命名空间不为Toplan\PhpSms,在使用该代理器时则需要指定代理器类,详见高级调度配置。

实现相应的接口,可选的接口有:

接口 说明
ContentSms 发送内容短信
TemplateSms 发送模版短信
VoiceCode 发送语音验证码
ContentVoice 发送内容语音
TemplateVoice 发送模版语音
FileVoice 发送文件语音

高级调度配置

代理器的高级调度配置可以通过配置文件(config/phpsms.php)中的scheme项目配置,也可以通过scheme静态方法设置。 值得注意的是,高级调度配置的值的数据结构是数组。

指定代理器类

如果你自定义了一个代理器,类名不为FooAgent或者命名空间不为Toplan\PhpSms, 那么你还可以在调度配置时指定你的代理器使用的类。

通过配置值中agentClass键来指定类名。

寄生代理器

如果你既不想使用内置的代理器,也不想创建文件写自定义代理器,那么寄生代理器或许是个好的选择, 无需定义代理器类,只需在调度配置时定义好发送短信和语音验证码的方式即可。

可以配置的发送过程有:

发送过程 参数列表 说明
sendContentSms $agent, $to, $content 发送内容短信
sendTemplateSms $agent, $to, $tmpId, $tmpData 发送模版短信
sendVoiceCode $agent, $to, $code 发送语音验证码
sendContentVoice $agent, $to, $content 发送内容语音
sendTemplateVoice $agent, $to, $tmpId, $tmpData 发送模版语音
sendFileVoice $agent, $to, $fileId 发送文件语音

Todo

License

MIT


All versions of phpsms with dependencies

PHP Build Version
Package Version
Requires php Version >=5.4.0
toplan/task-balancer Version ~0.5
jeremeamia/superclosure Version ~2.2
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package toplan/phpsms contains the following files

Loading the files please wait ....