$locationName
$locationName : string
Request header location
$locationName : string
visit(\GuzzleHttp\Command\CommandInterface $command, \Psr\Http\Message\RequestInterface $request, \GuzzleHttp\Command\Guzzle\Parameter $param) : \Psr\Http\Message\MessageInterface
Visits a location for each top-level parameter
\GuzzleHttp\Command\CommandInterface | $command | |
\Psr\Http\Message\RequestInterface | $request | |
\GuzzleHttp\Command\Guzzle\Parameter | $param |
after(\GuzzleHttp\Command\CommandInterface $command, \Psr\Http\Message\RequestInterface $request, \GuzzleHttp\Command\Guzzle\Operation $operation) : \Psr\Http\Message\RequestInterface
Called when all of the parameters of a command have been visited.
\GuzzleHttp\Command\CommandInterface | $command | |
\Psr\Http\Message\RequestInterface | $request | |
\GuzzleHttp\Command\Guzzle\Operation | $operation |
resolveRecursively(array $value, \GuzzleHttp\Command\Guzzle\Parameter $param) : array
Recursively prepare and filter nested values.
array | $value | Value to map |
\GuzzleHttp\Command\Guzzle\Parameter | $param | Parameter related to the current key. |
Returns the mapped array
<?php
namespace GuzzleHttp\Command\Guzzle\RequestLocation;
use GuzzleHttp\Command\CommandInterface;
use GuzzleHttp\Command\Guzzle\Operation;
use GuzzleHttp\Command\Guzzle\Parameter;
use Psr\Http\Message\MessageInterface;
use Psr\Http\Message\RequestInterface;
/**
* Request header location
*/
class HeaderLocation extends AbstractLocation
{
/**
* Set the name of the location
*
* @param string $locationName
*/
public function __construct($locationName = 'header')
{
parent::__construct($locationName);
}
/**
* @param CommandInterface $command
* @param RequestInterface $request
* @param Parameter $param
*
* @return MessageInterface
*/
public function visit(
CommandInterface $command,
RequestInterface $request,
Parameter $param
) {
$value = $command[$param->getName()];
return $request->withHeader($param->getWireName(), $param->filter($value));
}
/**
* @param CommandInterface $command
* @param RequestInterface $request
* @param Operation $operation
*
* @return RequestInterface
*/
public function after(
CommandInterface $command,
RequestInterface $request,
Operation $operation
) {
/** @var Parameter $additional */
$additional = $operation->getAdditionalParameters();
if ($additional && ($additional->getLocation() === $this->locationName)) {
foreach ($command->toArray() as $key => $value) {
if (!$operation->hasParam($key)) {
$request = $request->withHeader($key, $additional->filter($value));
}
}
}
return $request;
}
}