mirror of
https://github.com/retailcrm/mailgun-php.git
synced 2024-11-25 14:26:04 +03:00
Added docs of how to debug (#315)
* Added debug options * Added docs * cs
This commit is contained in:
parent
7c83da9246
commit
9e19f12a3d
22
README.md
22
README.md
@ -125,20 +125,22 @@ Go to http://bin.mailgun.net. The Postbin will generate a special URL. Save that
|
|||||||
|
|
||||||
**Step 2 - Instantiate the Mailgun client using Postbin.**
|
**Step 2 - Instantiate the Mailgun client using Postbin.**
|
||||||
|
|
||||||
*Tip: The bin id will be the URL part after bin.mailgun.net. It will be random generated letters and numbers. For example, the bin id in this URL, http://bin.mailgun.net/aecf68de, is "aecf68de".*
|
*Tip: The bin id will be the URL part after bin.mailgun.net. It will be random generated letters and numbers.
|
||||||
|
For example, the bin id in this URL, http://bin.mailgun.net/aecf68de, is "aecf68de".*
|
||||||
|
|
||||||
```php
|
```php
|
||||||
# First, instantiate the SDK with your API credentials and define your domain.
|
$configurator = new HttpClientConfigurator();
|
||||||
$mg = new Mailgun('key-example', null, 'bin.mailgun.net');
|
$configurator->setEndpoint('http://bin.mailgun.net/aecf68de');
|
||||||
$mg->setApiVersion('aecf68de');
|
$configurator->setDebug(true);
|
||||||
$mg->setSslEnabled(false);
|
$mg = Mailgun::configure($configurator);
|
||||||
$domain = 'example.com';
|
|
||||||
|
|
||||||
# Now, compose and send your message.
|
# Now, compose and send your message.
|
||||||
$mg->sendMessage($domain, array('from' => 'bob@example.com',
|
$mg->sendMessage('example.com', [
|
||||||
'to' => 'sally@example.com',
|
'from' => 'bob@example.com',
|
||||||
'subject' => 'The PHP SDK is awesome!',
|
'to' => 'sally@example.com',
|
||||||
'text' => 'It is so simple to send a message.'));
|
'subject' => 'The PHP SDK is awesome!',
|
||||||
|
'text' => 'It is so simple to send a message.']
|
||||||
|
);
|
||||||
```
|
```
|
||||||
### Additional Info
|
### Additional Info
|
||||||
|
|
||||||
|
45
src/Mailgun/HttpClient/Plugin/ReplaceUriPlugin.php
Normal file
45
src/Mailgun/HttpClient/Plugin/ReplaceUriPlugin.php
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2013-2016 Mailgun
|
||||||
|
*
|
||||||
|
* This software may be modified and distributed under the terms
|
||||||
|
* of the MIT license. See the LICENSE file for details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Mailgun\HttpClient\Plugin;
|
||||||
|
|
||||||
|
use Http\Client\Common\Plugin;
|
||||||
|
use Psr\Http\Message\RequestInterface;
|
||||||
|
use Psr\Http\Message\UriInterface;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Replaces a URI with a new one. Good for debugging.
|
||||||
|
*
|
||||||
|
* @author Tobias Nyholm <tobias.nyholm@gmail.com>
|
||||||
|
*/
|
||||||
|
final class ReplaceUriPlugin implements Plugin
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var UriInterface
|
||||||
|
*/
|
||||||
|
private $uri;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param UriInterface $uri
|
||||||
|
*/
|
||||||
|
public function __construct(UriInterface $uri)
|
||||||
|
{
|
||||||
|
$this->uri = $uri;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function handleRequest(RequestInterface $request, callable $next, callable $first)
|
||||||
|
{
|
||||||
|
$request = $request->withUri($this->uri);
|
||||||
|
|
||||||
|
return $next($request);
|
||||||
|
}
|
||||||
|
}
|
@ -16,6 +16,7 @@ use Http\Discovery\UriFactoryDiscovery;
|
|||||||
use Http\Message\UriFactory;
|
use Http\Message\UriFactory;
|
||||||
use Http\Client\Common\Plugin;
|
use Http\Client\Common\Plugin;
|
||||||
use Mailgun\HttpClient\Plugin\History;
|
use Mailgun\HttpClient\Plugin\History;
|
||||||
|
use Mailgun\HttpClient\Plugin\ReplaceUriPlugin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Configure a HTTP client.
|
* Configure a HTTP client.
|
||||||
@ -29,6 +30,13 @@ final class HttpClientConfigurator
|
|||||||
*/
|
*/
|
||||||
private $endpoint = 'https://api.mailgun.net';
|
private $endpoint = 'https://api.mailgun.net';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If debug is true we will send all the request to the endpoint without appending any path.
|
||||||
|
*
|
||||||
|
* @var bool
|
||||||
|
*/
|
||||||
|
private $debug = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
@ -60,7 +68,7 @@ final class HttpClientConfigurator
|
|||||||
public function createConfiguredClient()
|
public function createConfiguredClient()
|
||||||
{
|
{
|
||||||
$plugins = [
|
$plugins = [
|
||||||
new Plugin\AddHostPlugin($this->getUriFactory()->createUri($this->getEndpoint())),
|
new Plugin\AddHostPlugin($this->getUriFactory()->createUri($this->endpoint)),
|
||||||
new Plugin\HeaderDefaultsPlugin([
|
new Plugin\HeaderDefaultsPlugin([
|
||||||
'User-Agent' => 'mailgun-sdk-php/v2 (https://github.com/mailgun/mailgun-php)',
|
'User-Agent' => 'mailgun-sdk-php/v2 (https://github.com/mailgun/mailgun-php)',
|
||||||
'Authorization' => 'Basic '.base64_encode(sprintf('api:%s', $this->getApiKey())),
|
'Authorization' => 'Basic '.base64_encode(sprintf('api:%s', $this->getApiKey())),
|
||||||
@ -68,15 +76,23 @@ final class HttpClientConfigurator
|
|||||||
new Plugin\HistoryPlugin($this->responseHistory),
|
new Plugin\HistoryPlugin($this->responseHistory),
|
||||||
];
|
];
|
||||||
|
|
||||||
|
if ($this->debug) {
|
||||||
|
$plugins[] = new ReplaceUriPlugin($this->getUriFactory()->createUri($this->endpoint));
|
||||||
|
}
|
||||||
|
|
||||||
return new PluginClient($this->getHttpClient(), $plugins);
|
return new PluginClient($this->getHttpClient(), $plugins);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return string
|
* @param bool $debug
|
||||||
|
*
|
||||||
|
* @return HttpClientConfigurator
|
||||||
*/
|
*/
|
||||||
private function getEndpoint()
|
public function setDebug($debug)
|
||||||
{
|
{
|
||||||
return $this->endpoint;
|
$this->debug = $debug;
|
||||||
|
|
||||||
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user