chubbyphp / chubbyphp-decode-encode
Chubbyphp decode/encode json/jsonx/ndjson/url-encoded/xml/yaml
Package info
github.com/chubbyphp/chubbyphp-decode-encode
pkg:composer/chubbyphp/chubbyphp-decode-encode
1.5.0
2026-11-07 22:07 UTC
Requires
- php: ^8.3
- ext-dom: *
- ext-json: *
- ext-mbstring: *
- symfony/yaml: ^6.4.48|^7.4.21|^8.1.9
Requires (Dev)
- chubbyphp/chubbyphp-container: ^2.5.3
- chubbyphp/chubbyphp-dev-helper: dev-master
- chubbyphp/chubbyphp-laminas-config-factory: ^1.5.5
- chubbyphp/chubbyphp-mock: ^2.2.5
- infection/infection: ^0.35.8
- php-coveralls/php-coveralls: ^2.9.1
- phpstan/extension-installer: ^1.4.3
- phpstan/phpstan: ^2.3.1
- phpunit/phpunit: ^12.5.40
- psr/container: ^2.0.2
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Description
Decode and encode request/response bodies by content type: json, jsonx, ndjson (json lines), url-encoded, xml and yaml.
Requirements
- php: ^8.3
- symfony/yaml: ^6.4.48|^7.4.21|^8.1.9
Suggest
- chubbyphp/chubbyphp-container: ^2.5.3
- psr/container: ^1.1.2|^2.0.2
Installation
Through Composer as chubbyphp/chubbyphp-decode-encode.
composer require chubbyphp/chubbyphp-decode-encode "^1.5"
Usage
Decoder
<?php use Chubbyphp\DecodeEncode\Decoder\Decoder; use Chubbyphp\DecodeEncode\Decoder\JsonTypeDecoder; use Chubbyphp\DecodeEncode\Decoder\JsonxTypeDecoder; use Chubbyphp\DecodeEncode\Decoder\NdjsonTypeDecoder; use Chubbyphp\DecodeEncode\Decoder\UrlEncodedTypeDecoder; use Chubbyphp\DecodeEncode\Decoder\XmlTypeDecoder; use Chubbyphp\DecodeEncode\Decoder\YamlTypeDecoder; $decoder = new Decoder([ new JsonTypeDecoder(), new JsonxTypeDecoder(), new NdjsonTypeDecoder(), new UrlEncodedTypeDecoder(), new XmlTypeDecoder(), new YamlTypeDecoder() ]); print_r($decoder->getContentTypes()); //[ // 'application/json', // 'application/jsonx+xml', // 'application/jsonl', // 'application/x-www-form-urlencoded', // 'application/xml', // 'application/x-yaml' //] print_r($decoder->decode( '{"name": "php"}', 'application/json' )); // ['name' => 'php'] print_r($decoder->decode( "{\"name\": \"php\"}\n{\"name\": \"typescript\"}\n", 'application/jsonl' )); // [['name' => 'php'], ['name' => 'typescript']]
Type Decoder
- JsonTypeDecoder
- JsonxTypeDecoder
- NdjsonTypeDecoder
- UrlEncodedTypeDecoder
- XmlTypeDecoder
- YamlTypeDecoder
Encoder
Encoder
<?php use Chubbyphp\DecodeEncode\Encoder\Encoder; use Chubbyphp\DecodeEncode\Encoder\JsonTypeEncoder; use Chubbyphp\DecodeEncode\Encoder\JsonxTypeEncoder; use Chubbyphp\DecodeEncode\Encoder\NdjsonTypeEncoder; use Chubbyphp\DecodeEncode\Encoder\UrlEncodedTypeEncoder; use Chubbyphp\DecodeEncode\Encoder\XmlTypeEncoder; use Chubbyphp\DecodeEncode\Encoder\YamlTypeEncoder; $encoder = new Encoder([ new JsonTypeEncoder(), new JsonxTypeEncoder(), new NdjsonTypeEncoder(), new UrlEncodedTypeEncoder(), new XmlTypeEncoder(), new YamlTypeEncoder() ]); print_r($encoder->getContentTypes()); //[ // 'application/json', // 'application/jsonx+xml', // 'application/jsonl', // 'application/x-www-form-urlencoded', // 'application/xml', // 'application/x-yaml' //] echo $encoder->encode( ['name' => 'php'], 'application/json' ); // '{"name":"php"}' echo $encoder->encode( [['name' => 'php'], ['name' => 'typescript']], 'application/jsonl' ); // "{\"name\":\"php\"}\n{\"name\":\"typescript\"}\n"
Type Encoder
- JsonTypeEncoder
- JsonxTypeEncoder
- NdjsonTypeEncoder
- UrlEncodedTypeEncoder
- XmlTypeEncoder
- YamlTypeEncoder
ServiceFactory
chubbyphp-laminas-config-factory
Copyright
2026 Dominik Zogg