yiisoft / http
Constants and PSR-7 PhpStorm meta for HTTP protocol headers, methods and statuses
Fund package maintenance!
Open Collective
yiisoft
Installs: 258 409
Dependents: 52
Suggesters: 0
Security: 0
Stars: 20
Watchers: 15
Forks: 8
Open Issues: 4
Requires
- php: ^7.4|^8.0
- yiisoft/strings: ^2.0
Requires (Dev)
- phpunit/phpunit: ^9.5
- roave/infection-static-analysis-plugin: ^1.10
- spatie/phpunit-watcher: ^1.23
- vimeo/psalm: ^4.12
This package is auto-updated.
Last update: 2023-06-02 06:30:16 UTC
README
Yii HTTP
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.
Method constants
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;
HTTP status codes
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
usage
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
usage
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'));
PSR-7 and PSR-17 PhpStorm meta
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); } }
Testing
Unit testing
The package is tested with PHPUnit. To run tests:
./vendor/bin/phpunit
Mutation testing
The package tests are checked with Infection mutation framework with Infection Static Analysis Plugin. To run it:
./vendor/bin/roave-infection-static-analysis-plugin
Static analysis
The code is statically analyzed with Psalm. To run static analysis:
./vendor/bin/psalm
License
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.