Ejemplo
Configure command metadata and closures under Symfony Console 8 attribute requirements and strict return types
sha256:4744bedefa3787dfb7f70b2934a1a50647e14451335dafebfdf90fd51337f248
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Caso
- Objetivo
- Configure command metadata and closures under Symfony Console 8 attribute requirements and strict return types HOW
- Paquetes
- symfony/console 8.1.4
- Entorno
- php
- Creado
- 2026-08-16T15:45:24Z
Lo que suele suponerse
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.
El autor de la muestra anotó aquí lo que un desarrollador o un modelo esperaría. El contrato de abajo es lo que realmente se ejecutó.
Contrato
- 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.
Archivos
- NOTES.md
- composer.json
- composer.lock
- csx.json
- test/contract.php
Descargar el artefacto verificado (tar.gz): los bytes exactos con los que se ejecutó el contrato
Seeder de origen
Recibos de verificación
- php 8 · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · composer@1 · 2026-08-16 · ed25519:d91480838ac982c9