kaspi / http-message
HTTP Message implementation PSR-7, PSR-17
Requires
- php: ^8.1 || ^8.2 || ^8.3
- psr/http-factory: ^1.0
- psr/http-message: 1.1 || ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.46
- mikey179/vfsstream: ^1.6
- pestphp/pest: ^2.31
- phan/phan: ^5.4
README
Kaspi/http-message is a lightweight implementation PSR-7, PSR-17 for >= PHP 8.1
Implementation of PSR-17:
\Kaspi\HttpMessage\HttpFactory::class
Implementation of PSR-7:
\Kaspi\HttpMessage\Message::class
\Kaspi\HttpMessage\Request::class
\Kaspi\HttpMessage\Response::class
\Kaspi\HttpMessage\ServerRequest::class
\Kaspi\HttpMessage\Stream::class
\Kaspi\HttpMessage\UploadedFile::class
\Kaspi\HttpMessage\Uri::class
Additional implementations for \Psr\Http\Message\StreamInterface
\Kaspi\HttpMessage\Stream\FileStream::class
\Kaspi\HttpMessage\Stream\PhpMemoryStream::class
\Kaspi\HttpMessage\Stream\PhpTempStream::class
Installation
composer require kaspi/http-message
- Local development (without Docker)
- With Docker images (WSL, Linux)
Local development
Required PHP 8.1, php Composer
Testing
Run test without code coverage
composer test
Running tests with checking code coverage by tests with a report in html format
./vendor/bin/pest --compact
Requires installed PCOV driver
⛑ the results will be in the folder .coverage-html
Static code analysis
For static analysis we use the package Phan.
Running without PHP extension PHP AST
./vendor/bin/phan --allow-polyfill-parser
Code style
To bring the code to standards, we use php-cs-fixer which is declared in composer's dev dependencies
composer fixer
Using Docker image with PHP 8.1, 8.2, 8.3
You can specify the image with the PHP version in the .env
file in the PHP_IMAGE
key.
By default, the container is built with the php:8.1-cli-alpine
image.
Build docker container
docker-compose build
Install php composer dependencies:
docker-compose run --rm php composer install
Run tests with a code coverage report and a report in html format
docker-compose run --rm php vendor/bin/pest --compact
⛑ the results will be in the folder .coverage-html
Phan (static analyzer for PHP)
docker-compose run --rm php vendor/bin/phan
You can work in a shell in a docker container:
docker-compose run --rm php sh
Using Makefile commands.
Check and correct code style:
make fix
Run the static code analyzer:
make stat
Run tests:
make test
Run all stages of checks:
make all