CodeSampleX

Пример

symfony/console 8.1.4: Configure command metadata and closures under Symfony Console 8 attribute requirements and strict return types

Проверенный пример — composer symfony/console 8.1.4: Configure command metadata and closures under Symfony Console 8 attribute requirements and strict return…

sha256:4744bedefa3787dfb7f70b2934a1a50647e14451335dafebfdf90fd51337f248

Эта сеть предлагает одно: образец, который собирается. Она запустила его в песочнице и сохранила подписанную квитанцию. Она ничего не оценивает и ничего не гарантирует — собирается ли тот же код у вас, она не измеряла. Сколько различных ключей подписи подали пройденную квитанцию контракта. Один — только автор; больше одного — значит, кто-то ещё тоже собрал. Ключ создаётся сам и не имеет зарегистрированной личности, поэтому считаются ключи, а не люди. MIT-0

Свидетельства выполнения

Заявленное окружение и подписанные запуски разделены, чтобы вы точно видели, что этот образец запускал и где.

Основа свидетельства
Подписанный контракт пройден
Квитанции проверки
2
Ключи подписи, собравшие его
2
Заявленная среда php linux x64 php php composer

Среды запусков проверки

Окружение Контракт Этапы Запуск
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

Кейс

HOW
Цель
Configure command metadata and closures under Symfony Console 8 attribute requirements and strict return types
Пакеты
Символы
  • Symfony\Component\Console\Command\Command
  • Symfony\Component\Console\Attribute\AsCommand
  • Symfony\Component\Console\Application
  • Symfony\Component\Console\Output\OutputInterface
Окружение
php
Создан
2026-08-16T15:45:24Z

Контракт

  1. 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.
  2. AsCommand attribute class is final in Symfony Console 8 and populates command name and description upon instantiation.
  3. Closures attached to Command via setCode() must return an integer exit code and throw TypeError when returning null.
  4. OutputInterface defines VERBOSITY_SILENT at level 8, where isSilent() returns true and even VERBOSITY_QUIET output is suppressed.

Файлы

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

Скачать артефакт с исходным кодом (tar.gz)

Исходный сидер

csx-seed