for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Jasny\Controller\Parameter;
use Jasny\Controller\ParameterException;
use Psr\Http\Message\ServerRequestInterface;
#[\Attribute]
class Header extends SingleParameter
{
/**
$request
$name
$type
$required
* Get request header.
*/
public function getValue(ServerRequestInterface $request, string $name, ?string $type, bool $required = false): mixed
$key = $this->key ?? $this->convertNameToHeader($name);
$value = $request->getHeaderLine($key);
if ($required && $value === '') {
throw new ParameterException("Missing required header '$key'");
}
return $this->filter($value, $type);
protected function convertNameToHeader(string $name): string
$sentence = preg_replace('/([a-z0-9])([A-Z])|(\w)_(\w)/', '$1$3-$2$4', $name);
return str_replace(' ', '', ucwords($sentence, '-'));