The package provides:
- Constants for HTTP protocol headers, methods and statuses. All along with short descriptions and RFC links.
- PSR-7, PSR-17 PhpStorm meta for HTTP protocol headers, methods and statuses.
ContentDispositionHeader
that has static methods to generateContent-Disposition
header name and value.HeaderValueHelper
that has static methods to parse the header value parameters.
Individual HTTP methods could be referenced as
use Yiisoft\Http\Method;
Method::GET;
Method::POST;
Method::PUT;
Method::DELETE;
Method::PATCH;
Method::HEAD;
Method::OPTIONS;
To have a list of these, use:
use Yiisoft\Http\Method;
Method::ALL;
Status codes could be referenced by name as:
use Yiisoft\Http\Status;
Status::NOT_FOUND;
Status text could be obtained as the following:
use Yiisoft\Http\Status;
Status::TEXTS[Status::NOT_FOUND];
ContentDispositionHeader
methods are static so usage is like the following:
use Yiisoft\Http\ContentDispositionHeader;
$name = ContentDispositionHeader::name();
$value = ContentDispositionHeader::value(
ContentDispositionHeader::INLINE,
'avatar.png',
);
$value = ContentDispositionHeader::inline('document.pdf');
$value = ContentDispositionHeader::attachment('document.pdf');
HeaderValueHelper
provides the following static methods:
use Yiisoft\Http\HeaderValueHelper;
// Result: ['a' => '1', 'b' => '2']
HeaderValueHelper::getParameters('a=1;b=2');
// Result: ['value', 'a' => '1', 'b' => '2']
HeaderValueHelper::getValueAndParameters('value;a=1;b=2'));
// Result: [['value2', 'q' => 1.0], ['value1', 'q' => 0.2]]
HeaderValueHelper::getSortedValueAndParameters('value1;q=0.2,value2'));
// Result: ['text/xml', 'text/html']
HeaderValueHelper::getSortedAcceptTypes('text/html;q=0.2,text/xml;q=0.4'));
The package includes PhpStorm meta-files that help IDE to provide values when completing code in cases such as:
use Psr\Http\Message\ResponseFactoryInterface;
use Psr\Http\Message\ResponseInterface;
use Yiisoft\Http\Header;
use Yiisoft\Http\Status;
class StaticController
{
private ResponseFactoryInterface $responseFactory;
public function actionIndex(): ResponseInterface
{
return $this->responseFactory
->createResponse()
->withStatus(Status::OK)
->withoutHeader(Header::ACCEPT);
}
}
The package is tested with PHPUnit. To run tests:
./vendor/bin/phpunit
The package tests are checked with Infection mutation framework with Infection Static Analysis Plugin. To run it:
./vendor/bin/roave-infection-static-analysis-plugin
The code is statically analyzed with Psalm. To run static analysis:
./vendor/bin/psalm
The Yii HTTP is free software. It is released under the terms of the BSD License.
Please see LICENSE
for more information.
Maintained by Yii Software.