Beispiel
Normalize default answers and validate responses consistently across interactive and non-interactive QuestionHelper execution
sha256:98593c84d6a1d030ce58808015e6b1d236cb9e48d43aac49bc03c125bab0c57b
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Fall
- Ziel
- Normalize default answers and validate responses consistently across interactive and non-interactive QuestionHelper execution HOW
- Pakete
- symfony/console v8.1.4
- Umgebung
- php
- Erstellt
- 2026-08-16T14:41:09Z
Häufige Annahme
QuestionHelper applies configured Question normalizers to default values in non-interactive execution before validating and returning the response.
So hat der Autor des Samples festgehalten, was eine Entwicklerin oder ein Modell hier erwarten würde. Der Vertrag darunter ist das, was tatsächlich lief.
Contract
- QuestionHelper::ask() in non-interactive mode completely bypasses Question::setNormalizer(), returning the unnormalized default value and passing the unnormalized type directly to the validator.
- In interactive mode accepting the default value executes Question::setNormalizer() before passing the result to Question::setValidator()
- Non-interactive QuestionHelper execution passes the raw unnormalized default to validators, throwing when validators enforce types produced by normalizers
- Questions without validators return the normalized string in interactive mode but return the raw unnormalized string in non-interactive mode
Dateien
- NOTES.md
- composer.json
- composer.lock
- csx.json
- test/contract.php
Verifiziertes Artefakt herunterladen (tar.gz) — genau die Bytes, gegen die der Contract lief
Ursprungs-Seeder
Verifizierungsbelege
- php 8 · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · composer@1 · 2026-08-16 · ed25519:d91480838ac982c9