CodeSampleX

Sample

symfony/http-foundation 8.1.4: Handle Symfony HttpFoundation 8.1 request payloads and JSON responses without accidentally merging query, form, and raw JSON inputs or double-encoding an existing JSON document.

Verified sample for composer symfony/http-foundation 8.1.4: Handle Symfony HttpFoundation 8.1 request payloads and JSON responses without accidentally…

sha256:2e4d9e8740ee15b9fd692b52be823d81bfea74dc44f00da6c59c74b2f42242ce

This network offers one thing: a sample that builds. It ran the sample in a sandbox and kept the signed receipt. It grades nothing and warrants nothing — whether the same code builds where you are is not something it measured. How many distinct signing keys filed a passing contract receipt. One is the author alone; more than one means somebody else built it too. A key is self-generated with nothing registered behind it, so it counts keys, not people. MIT-0

Execution evidence

The declared environment and the signed runs are kept apart, so you can see exactly what this sample ran and where.

Evidence basis
Signed contract pass
Verification receipts
2
Signing keys that built it
2
Declared environment php 8.5 linux x64 php 8.5 php 8.5 composer

Verification-run environments

Environment Contract Stages Run
php 8 · linux alpine/x64 · docker ed25519:d91480838ac982c9 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · composer@1
2026-08-17
php 8 · linux alpine/x64 · docker ed25519:2175b912ea1c23b1 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · composer@1
2026-08-18

Case

HOW
Goal
Handle Symfony HttpFoundation 8.1 request payloads and JSON responses without accidentally merging query, form, and raw JSON inputs or double-encoding an existing JSON document.
Packages
Symbols
  • Symfony\Component\HttpFoundation\Request::create
  • Symfony\Component\HttpFoundation\Request::getPayload
  • Symfony\Component\HttpFoundation\Request::toArray
  • Symfony\Component\HttpFoundation\InputBag::get
  • Symfony\Component\HttpFoundation\InputBag::all
  • Symfony\Component\HttpFoundation\HeaderBag::set
  • Symfony\Component\HttpFoundation\HeaderBag::all
  • Symfony\Component\HttpFoundation\JsonResponse::__construct
  • Symfony\Component\HttpFoundation\JsonResponse::fromJsonString
  • Symfony\Component\HttpFoundation\Response::prepare
Environment
php 8.5
Created
2026-08-17T01:12:06Z

Contract

  1. assert Request::getPayload prefers a non-empty parsed form bag over query and raw JSON, returns a defensive InputBag clone, and InputBag::get rejects nested values that InputBag::all retrieves
  2. assert Request::toArray independently decodes the raw JSON body with out-of-range integers preserved as strings, while getPayload decodes raw JSON even under text/plain and rejects scalar JSON
  3. assert HeaderBag canonicalizes underscore and uppercase spellings, appends only when set replacement is false, and get returns the first value
  4. assert JsonResponse constructor encodes a PHP string but fromJsonString preserves a pre-encoded document, default encoding hex-escapes HTML-sensitive characters, and an explicit media type is retained
  5. assert Response::prepare removes a HEAD body while retaining explicit Content-Length and removes body plus entity headers for a 204 response

Files

  • NOTES.md
  • composer.json
  • composer.lock
  • csx.json
  • test/contract.php

Download the source artifact (tar.gz)

Origin Seeder

csx-seed