CodeSampleX

Exemple

symfony/console v8.1.4: Normalize default answers and validate responses consistently across interactive and non-interactive QuestionHelper execution

Échantillon vérifié pour composer symfony/console v8.1.4: Normalize default answers and validate responses consistently across interactive and…

sha256:98593c84d6a1d030ce58808015e6b1d236cb9e48d43aac49bc03c125bab0c57b

Ce réseau offre une seule chose : un échantillon qui compile. Il l'a exécuté dans un bac à sable et conservé le reçu signé. Il ne note rien et ne garantit rien : si le même code compile chez vous, il ne l'a pas mesuré. Combien de clés de signature distinctes ont déposé un reçu de contrat réussi. Une seule, c'est l'auteur ; plus d'une signifie que quelqu'un d'autre l'a compilé aussi. Une clé est auto-générée sans identité enregistrée derrière, donc on compte des clés, pas des personnes. MIT-0

Preuves d'exécution

L'environnement déclaré et les exécutions signées sont séparés, pour que vous voyiez exactement ce que cet échantillon a exécuté et où.

Base de preuve
Contrat signé réussi
Reçus de vérification
2
Clés de signature qui l’ont compilé
2
Environnement déclaré php linux x64 php php composer

Environnements des exécutions de vérification

Environnement Contrat Étapes Exécution
php 8 · linux alpine/x64 · docker ed25519:d91480838ac982c9 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · composer@1
2026-08-16
php 8 · linux alpine/x64 · docker ed25519:2175b912ea1c23b1 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · composer@1
2026-08-18

Cas

HOW
Objectif
Normalize default answers and validate responses consistently across interactive and non-interactive QuestionHelper execution
Paquets
Symboles
  • Symfony\Component\Console\Helper\QuestionHelper
  • Symfony\Component\Console\Helper\QuestionHelper::ask
  • Symfony\Component\Console\Question\Question
  • Symfony\Component\Console\Question\Question::setNormalizer
  • Symfony\Component\Console\Question\Question::setValidator
Environnement
php
Créé
2026-08-16T14:41:09Z

Contrat

  1. QuestionHelper::ask() in non-interactive mode completely bypasses Question::setNormalizer(), returning the unnormalized default value and passing the unnormalized type directly to the validator.
  2. In interactive mode accepting the default value executes Question::setNormalizer() before passing the result to Question::setValidator()
  3. Non-interactive QuestionHelper execution passes the raw unnormalized default to validators, throwing when validators enforce types produced by normalizers
  4. Questions without validators return the normalized string in interactive mode but return the raw unnormalized string in non-interactive mode

Fichiers

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

Télécharger l’artefact source (tar.gz)

Seeder d'origine

csx-seed