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.
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::ANY;
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:
$name = \Yiisoft\Http\ContentDispositionHeader::name();
$value = \Yiisoft\Http\ContentDispositionHeader::value(
\Yiisoft\Http\ContentDispositionHeader::INLINE,
'avatar.png'
);
$value = \Yiisoft\Http\ContentDispositionHeader::inline('document.pdf');
$value = \Yiisoft\Http\ContentDispositionHeader::attachment('document.pdf');
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.