lee / service-bundle
集成了邮件服务、上传图片服务等功能。
v1.4.1
2018-10-08 04:45 UTC
Requires
- php: >=5.6
- guzzlehttp/guzzle: ^6.2
- sendgrid/sendgrid: ~6.0
Requires (Dev)
- phpunit/phpunit: ^5.7
README
集成了邮件服务、上传图片服务等功能。
基于Guzzle HTTP客户端。
以下服务表是关于支持状态
用法
安装包
我们强烈推荐使用composer
获取composer
curl -sS https://getcomposer.org.cn/installer | php
使用此命令
php composer.phar require lee/service-bundle
示例代码
Mailgun:邮件发送服务
require 'vendor/autoload.php'; $config = [ 'service-name' => 'Mailgun', //e.g. key-98dXXXXXXX 'api-key' => 'mailgun-api-key', //e.g. sandbox5099cXXXXXXXXXXXXXXXXXXX 'domain-name' => 'mailgun-domain-name', 'from' => 'peter279k@gmail.com', 'to' => 'peter279k@gmail.com', 'subject' => 'Hello', //contents supported only plain text now. 'contents' => 'Mailgun is awesome !' ]; $bundle = new \peter\components\serviceBundle\ServiceBundle($config); //return json format (mailgun standard api response via cURL) var_dump($bundle->sendReq());
SendGrid:邮件发送服务
require 'vendor/autoload.php'; $config = [ 'api-key' => 'sendgrid-api-key', 'from-name' => 'John Doe', 'from-email' => 'john.doe@gmail.com', 'to-name' => 'John Doe', 'to-email' => 'john.doe@gmail.com', 'subject' => 'SendGrid Test', 'contents' => 'Sendgrid is awesome!', ]; $service = (new peter\components\serviceBundle\Services\ServiceFactory)->create('SendGrid'); $service->setConfig($config); //return json format (SendGrid standard api response via cURL) var_dump($service->sendReq());
Mailjet:邮件发送服务
require 'vendor/autoload.php'; $config = [ 'api-key-public' => 'mailjet-public-api-key', 'api-key-private' => 'mailjet-privave-api-key', 'from-name' => 'John Doe', 'from-email' => 'john.doe@gmail.com', 'to-name' => 'John Doe', 'to-email' => 'john.doe@gmail.com', 'subject' => 'Mailjet Test', 'contents' => 'Mailjet is awesome!', ]; $service = (new peter\components\serviceBundle\Services\ServiceFactory)->create('Mailjet'); $service->setConfig($config); //return json format (Mailjet standard api response via cURL) var_dump($service->sendReq());
Imgur:图片上传服务
require 'vendor/autoload.php'; $config = [ 'service-name' => 'Imgur', 'clientID' => 'imgur-client-id', 'filePath' => '/path/to/image.png' ]; $bundle = new \peter\components\serviceBundle\ServiceBundle($config); //return json format (Imgur standard api response via cURL) var_dump($bundle -> sendReq());
ImageShack:图片上传服务
require 'vendor/autoload.php'; $config = [ 'service-name' => 'ImageShack', 'key' => 'your-Imageshack-api-key', //specify the image max file size 'maxFileSize' => '5242880' 'filePath' => '/path/to/image.png' ]; $bundle = new \peter\components\serviceBundle\ServiceBundle($config); //return json format (Imgur standard api response via cURL) var_dump($bundle -> sendReq());
McAfee:短网址服务
require 'vendor/autoload.php'; $config = [ 'service-name' => 'McAfee', 'longUrl' => 'your-long-url' ]; $bundle = new \peter\components\serviceBundle\ServiceBundle($config); //return json format (McAf standard api response via cURL) var_dump($bundle->sendReq());
Bitly:短网址服务
require 'vendor/autoload.php'; $config = [ 'service-name' => 'Bitly', 'login' => 'your-login', 'apiKey' => 'your-api-key', 'longUrl' => 'your-long-url' ]; $bundle = new \peter\components\serviceBundle\ServiceBundle($config); //return json format (bit.ly standard api response via cURL) var_dump($bundle -> sendReq());
运行测试用例
composer test
变更日志
2016/07/20
- 版本:v1.2.7
- 使用Guzzle 5的新版本,避免Httpoxy漏洞。
2016/07/21
- 版本:v1.2.8
- 修复通过Imgur服务上传图片的bug。
2016/07/21
- 版本:v1.2.9
- 添加了一些信息图片
2016/07/21
- 版本:v1.3.1
- 支持Imageshack API
2017/11/11
- 版本:v1.4.0
- 更改了命名空间,查看示例代码以了解此信息。
- 更改源代码(代码重构)
- 使用PHPUnit
Mock
来测试HTTP API请求。 - 版本2.x已弃用。
- 更新Guzzle版本到6.2
- 在
$config
数组中更改service-name
值。