gapple / structured-fields
Library for Structured Field Values for HTTP
Installs: 538 822
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 1
Forks: 0
Open Issues: 6
pkg:composer/gapple/structured-fields
Requires
- php: ^8.1
 
Requires (Dev)
- httpwg/structured-field-tests: *@dev
 - paragonie/constant_time_encoding: ^3.0.0
 - phpmd/phpmd: ^2.15
 - phpstan/phpstan: ^1.12
 - phpstan/phpstan-phpunit: ^1.4
 - phpunit/phpunit: ^10.5
 - slevomat/coding-standard: ^8.15
 - squizlabs/php_codesniffer: ^3.11
 
- dev-develop / 2.x-dev
 - v2.3.2
 - v2.3.1
 - v2.3.0
 - v2.2.1
 - v2.2.0
 - 2.1.x-dev
 - v2.1.2
 - v2.1.1
 - v2.1.0
 - v2.0.1
 - v2.0.0
 - v1.1.x-dev
 - v1.1.0
 - v1.0.0
 - v0.3.x-dev
 - v0.3.3
 - v0.3.2
 - v0.3.1
 - v0.3.0
 - v0.2.3
 - v0.2.2
 - v0.2.1
 - v0.2.0
 - v0.1.0
 - dev-dependabot/github_actions/github/codeql-action-4
 - dev-dependabot/composer/squizlabs/php_codesniffer-tw-3.11or-tw-4.0
 - dev-dependabot/github_actions/actions/checkout-5
 - dev-phpstan-dynamic-properties
 
This package is auto-updated.
Last update: 2025-10-14 05:02:12 UTC
README
Parser and serializer for the Structured Field Values for HTTP specification.
Installation
Using composer:
composer require gapple/structured-fields
API
The Parser class provides static methods to convert a header string to structured data.
If the string cannot be parsed, a ParseException is thrown.
Parser::parseItem(string): Item;
Parser::parseList(string): OuterList;
Parser::parseDictionary(string): Dictionary;
The Serializer class provides static methods to convert structured data to a header string.
If the input cannot be serialized, a SerializeException is thrown.
Serializer::serializeItem(mixed, ?object): string;
Serializer::serializeList(iterable): string;
Serializer::serializeDictionary(object): string;
Special Types
Serializer will accept string or any Stringable object as an Item value,
but will throw a SerializeException if it contains any characters outside the
printable ASCII range.
Special Item types must use a decorating class in order to be serialized correctly:
- 
Byte Sequences (
\gapple\StructuredFields\Bytes)
A string containing binary data.SerializerandParserhandle base64 encoding and decoding the provided string. - 
Display Strings (
\gapple\StructuredFields\DisplayString)
A string that includes Unicode characters.SerializerandParserhandle percent-encoding and decoding non-ascii characters. - 
Tokens (
\gapple\StructuredFields\Token)
A short textual word with a restricted character set. - 
Dates (
\gapple\StructuredFields\Date)
An integer timestampSerializeraccepts any object that implements\DateTimeInterface.
Parserwill return a\gapple\StructuredFields\Dateobject.