for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Http\Client\Common\Plugin;
use Http\Client\Common\Plugin;
use Psr\Http\Message\RequestInterface;
use Psr\Http\Message\UriInterface;
/**
* This plugin combines the host and path plugins.
*
* @author Sullivan Senechal <[email protected]>
*/
final class BaseUriPlugin implements Plugin
{
* @var AddHostPlugin
private $addHostPlugin;
* @var AddPathPlugin
private $addPathPlugin = null;
* @param UriInterface $host
* @param array $hostConfig Config for AddHostPlugin. @see AddHostPlugin::configureOptions
public function __construct(UriInterface $host, array $hostConfig = [])
$this->addHostPlugin = new AddHostPlugin($host, $hostConfig);
if ($host->getPath()) {
$this->addPathPlugin = new AddPathPlugin($host);
}
* {@inheritdoc}
public function handleRequest(RequestInterface $request, callable $next, callable $first)
$addHostNext = function (RequestInterface $request) use ($next, $first) {
return $this->addHostPlugin->handleRequest($request, $next, $first);
};
if ($this->addPathPlugin) {
return $this->addPathPlugin->handleRequest($request, $addHostNext, $first);
return $addHostNext($request);