hamlet-framework/http-message

Hamlet Framework / HTTP / Request

0.0.5 2021-05-20 04:12 UTC

This package is auto-updated.

Last update: 2024-12-29 05:38:40 UTC


README

CI Status Packagist Packagist Coverage Status Psalm coverage

PSR-7 and PSR-17 implementation.

This library generally provides you with three ways of creating objects.

Step-wise adjustments

The standard approach is to create an object through a series of adjustments.

$message = Message::empty()
    ->withProtocolVersion('1.1')
    ->withHeader('Host', 'example.net');

Note, that all with* methods are validating and in the example above we're creating 2 intermediate objects along the way.

Validating builders

We can avoid creating multiple objects by using a validating builder

$message = Message::validatingBuilder()
    ->withProtocolVersion('1.1')
    ->withBody($body)
    ->withHeaders($headers)
    ->build();

It offers the same level of validation as the previous method.

Non-validating builders

When creating messages within you application's secure boundaries, there is a way to avoid redundant argument validation by using non-validating builders

$message = Message::nonValidatingBuilder()
    ->withProtocolVersion('1.1')
    ->withBody($body)
    ->withHeaders($headers)
    ->build();

When in doubt use validating builders.

Outstanding tasks