{"id":15691548,"url":"https://github.com/peter279k/servicebundle","last_synced_at":"2025-05-07T23:48:52.697Z","repository":{"id":62516700,"uuid":"50646486","full_name":"peter279k/serviceBundle","owner":"peter279k","description":"Integrating with mailing service,uploading image service and so on.","archived":false,"fork":false,"pushed_at":"2018-10-08T04:48:59.000Z","size":143,"stargazers_count":9,"open_issues_count":4,"forks_count":7,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-07T23:48:49.791Z","etag":null,"topics":["composer","guzzle","imageshack","imgur","mailgun","shorten-urls"],"latest_commit_sha":null,"homepage":"https://packagist.org/packages/lee/service-bundle","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/peter279k.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-01-29T07:35:19.000Z","updated_at":"2024-11-02T06:16:31.000Z","dependencies_parsed_at":"2022-11-02T14:48:05.708Z","dependency_job_id":null,"html_url":"https://github.com/peter279k/serviceBundle","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peter279k%2FserviceBundle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peter279k%2FserviceBundle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peter279k%2FserviceBundle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/peter279k%2FserviceBundle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/peter279k","download_url":"https://codeload.github.com/peter279k/serviceBundle/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252973625,"owners_count":21834105,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["composer","guzzle","imageshack","imgur","mailgun","shorten-urls"],"created_at":"2024-10-03T18:22:14.174Z","updated_at":"2025-05-07T23:48:52.678Z","avatar_url":"https://github.com/peter279k.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# serviceBundle\n[![Build Status](https://travis-ci.org/peter279k/serviceBundle.svg?branch=v1.2.8)](https://travis-ci.org/peter279k/serviceBundle) [![Latest Stable Version](https://poser.pugx.org/lee/service-bundle/version)](https://packagist.org/packages/lee/service-bundle) [![Total Downloads](https://poser.pugx.org/lee/service-bundle/downloads)](https://packagist.org/packages/lee/service-bundle) [![Latest Unstable Version](https://poser.pugx.org/lee/service-bundle/v/unstable)](https://packagist.org/packages/lee/service-bundle) [![License](https://poser.pugx.org/lee/service-bundle/license)](https://packagist.org/packages/lee/service-bundle) [![codecov](https://codecov.io/gh/peter279k/serviceBundle/branch/master/graph/badge.svg)](https://codecov.io/gh/peter279k/serviceBundle)\n[![Gitter](https://badges.gitter.im/peter279k/serviceBundle.svg)](https://gitter.im/peter279k/serviceBundle?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge)\n\n[![SensioLabsInsight](https://insight.sensiolabs.com/projects/f29371ba-ab1c-4203-84d3-7c903e919824/big.png)](https://insight.sensiolabs.com/projects/f29371ba-ab1c-4203-84d3-7c903e919824)\n\nIntegrating with mailing service, uploading image service and so on.\n\nIt's based on [Guzzle](https://github.com/guzzle/guzzle),HTTP client.\n\n## Following service table is about supporting status\n\n| service-name|support|service-type|\n|-------------|-------|------------|\n| [mailgun](https://www.mailgun.com/)| Yes   | mailing service |\n| [mailjet](http://dev.mailjet.com/guides/?php#about-the-mailjet-restful-api) | No | mailing service |\n| [sendgrid](https://sendgrid.com/)    | Yes    | mailing service |\n| [Imgur](http://imgur.com/)       | Yes   | uploading images service |\n| [Imageshack](https://www.imageshack.us)       | Yes   | uploading images service |\n| [bit.ly](https://bitly.com/)      | Yes    | shorten url service |\n|[McAf.ee](https://community.mcafee.com/docs/DOC-1991)| Yes | shorten url service |\n\n## Usage\n### Install Package\n\n  We strongly recommended using [composer](https://getcomposer.org)\n\n  Getting composer\n  ```bash\n  curl -sS https://getcomposer.org/installer | php\n  ```\n  Using this command\n  ```bash\n  php composer.phar require lee/service-bundle\n  ```\n## Sample code\n  Mailgun: a sending mail service\n  ```php\n  require 'vendor/autoload.php';\n  $config = [\n      'service-name' =\u003e 'Mailgun',\n      //e.g. key-98dXXXXXXX\n      'api-key' =\u003e 'mailgun-api-key',\n      //e.g. sandbox5099cXXXXXXXXXXXXXXXXXXX\n      'domain-name' =\u003e 'mailgun-domain-name',\n      'from' =\u003e 'peter279k@gmail.com',\n      'to' =\u003e 'peter279k@gmail.com',\n      'subject' =\u003e 'Hello',\n      //contents supported only plain text now.\n      'contents' =\u003e 'Mailgun is awesome !'\n  ];\n  $bundle = new \\peter\\components\\serviceBundle\\ServiceBundle($config);\n  //return json format (mailgun standard api response via cURL)\n  var_dump($bundle-\u003esendReq());\n  ```\n  SendGrid: a sending mail service\n  ```php\n  require 'vendor/autoload.php';\n  $config = [\n      'api-key' =\u003e 'sendgrid-api-key',\n      'from-name' =\u003e 'John Doe',\n      'from-email' =\u003e 'john.doe@gmail.com',\n      'to-name' =\u003e 'John Doe',\n      'to-email' =\u003e 'john.doe@gmail.com',\n      'subject' =\u003e 'SendGrid Test',\n      'contents' =\u003e 'Sendgrid is awesome!',\n  ];\n  $service = (new peter\\components\\serviceBundle\\Services\\ServiceFactory)-\u003ecreate('SendGrid');\n  $service-\u003esetConfig($config);\n  //return json format (SendGrid standard api response via cURL)\n  var_dump($service-\u003esendReq());\n  ```\n  Mailjet: a sending mail service\n  ```php\n  require 'vendor/autoload.php';\n  $config = [\n      'api-key-public' =\u003e 'mailjet-public-api-key',\n      'api-key-private' =\u003e 'mailjet-privave-api-key',\n      'from-name' =\u003e 'John Doe',\n      'from-email' =\u003e 'john.doe@gmail.com',\n      'to-name' =\u003e 'John Doe',\n      'to-email' =\u003e 'john.doe@gmail.com',\n      'subject' =\u003e 'Mailjet Test',\n      'contents' =\u003e 'Mailjet is awesome!',\n  ];\n  $service = (new peter\\components\\serviceBundle\\Services\\ServiceFactory)-\u003ecreate('Mailjet');\n  $service-\u003esetConfig($config);\n  //return json format (Mailjet standard api response via cURL)\n  var_dump($service-\u003esendReq());\n  ```\n  Imgur: an uploading images service\n  ```php\n  require 'vendor/autoload.php';\n  $config = [\n\t\t'service-name' =\u003e 'Imgur',\n\t\t'clientID' =\u003e 'imgur-client-id',\n\t\t'filePath' =\u003e '/path/to/image.png'\n  ];\n  $bundle = new \\peter\\components\\serviceBundle\\ServiceBundle($config);\n  //return json format (Imgur standard api response via cURL)\n  var_dump($bundle -\u003e sendReq());\n  ```\n\n  ImageShack: an uploading images service\n  ```php\n  require 'vendor/autoload.php';\n  $config = [\n\t\t'service-name' =\u003e 'ImageShack',\n\t\t'key' =\u003e 'your-Imageshack-api-key',\n\t\t//specify the image max file size\n\t\t'maxFileSize' =\u003e '5242880'\n\t\t'filePath' =\u003e '/path/to/image.png'\n  ];\n  $bundle = new \\peter\\components\\serviceBundle\\ServiceBundle($config);\n  //return json format (Imgur standard api response via cURL)\n  var_dump($bundle -\u003e sendReq());\n  ```\n\n  McAfee: a shorten url service\n  ```php\n  require 'vendor/autoload.php';\n  $config = [\n\t\t'service-name' =\u003e 'McAfee',\n\t\t'longUrl' =\u003e 'your-long-url'\n  ];\n  $bundle = new \\peter\\components\\serviceBundle\\ServiceBundle($config);\n  //return json format (McAf standard api response via cURL)\n  var_dump($bundle-\u003esendReq());\n  ```\n  Bitly: a shorten url service\n  ```php\n  require 'vendor/autoload.php';\n  $config = [\n\t\t'service-name' =\u003e 'Bitly',\n\t\t'login' =\u003e 'your-login',\n\t\t'apiKey' =\u003e 'your-api-key',\n\t\t'longUrl' =\u003e 'your-long-url'\n  ];\n  $bundle = new \\peter\\components\\serviceBundle\\ServiceBundle($config);\n  //return json format (bit.ly standard api response via cURL)\n  var_dump($bundle -\u003e sendReq());\n  ```\n## Run TestCase\n  ```\n  composer test\n  ```\n\n### Changelog\n\n#### 2016/07/20\n+ version: v1.2.7\n+ Using the new version of Guzzle 5 and avoid the Httpoxy vulnerability.\n\n#### 2016/07/21\n+ version: v1.2.8\n+ Fix the uploading image via imgur service bug.\n\n#### 2016/07/21\n+ version: v1.2.9\n+ adding some information images\n\n#### 2016/07/21\n+ version: v1.3.1\n+ supporting the Imageshack API\n\n#### 2017/11/11\n+ version: v1.4.0\n+ Change the namespace and see the sample code to know this.\n+ Change the source code(code refactoring)\n+ Using the PHPUnit ```Mock``` to test the HTTP API requests.\n+ The version 2.x is deprecated.\n+ Update the Guzzle version to 6.2\n+ Change the ```service-name``` value in ```$config``` array.\n\n\n## Version Guidance\n\n| Version | Status      | Packagist           | Namespace    | PSR-7 |\n|---------|-------------|---------------------|--------------|-------|\n| 1.x     | Maintained  | `lee/service-bundle` | `peter\\components\\serviceBundle` | No    |\n| 2.x     | **Deprecated      | `lee/service-bundle` | `peter\\components\\ServiceBundle` | No    |\n\n[serviceBundle-1-repo](https://github.com/peter279k/serviceBundle/tree/master)\n\n[serviceBundle-2-repo(deprecated)](https://github.com/peter279k/serviceBundle/tree/guzzle6)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeter279k%2Fservicebundle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpeter279k%2Fservicebundle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpeter279k%2Fservicebundle/lists"}