Beispiel
Configure command metadata and closures under Symfony Console 8 attribute requirements and strict return types
sha256:4744bedefa3787dfb7f70b2934a1a50647e14451335dafebfdf90fd51337f248
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Fall
- Ziel
- Configure command metadata and closures under Symfony Console 8 attribute requirements and strict return types HOW
- Pakete
- symfony/console 8.1.4
- Umgebung
- php
- Erstellt
- 2026-08-16T15:45:24Z
Häufige Annahme
Subclassing Command with a static getDefaultName method automatically defines the command name on instantiation, and closures assigned via setCode may omit explicit integer return values.
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
- Command subclasses defining static getDefaultName() have a null name in Symfony Console 8 because getDefaultName() was removed in favor of #[AsCommand], and Application::addCommand() throws LogicException for empty names.
- AsCommand attribute class is final in Symfony Console 8 and populates command name and description upon instantiation.
- Closures attached to Command via setCode() must return an integer exit code and throw TypeError when returning null.
- OutputInterface defines VERBOSITY_SILENT at level 8, where isSilent() returns true and even VERBOSITY_QUIET output is suppressed.
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