Summary
Migrate the phpdoc command from the legacy Composer BaseCommand runtime to the new Symfony-command runtime proposed in #199.
This is one command-level subissue for the incremental Composer decoupling plan. It keeps the migration small enough to validate through both command entrypoints before moving to the next command.
Context
Parent issue: #199
Architecture discussion: #197
Current command class:
FastForward\DevTools\Console\Command\PhpDocCommand
Migration Scope
- Convert the real command implementation to extend
Symfony\Component\Console\Command\Command instead of Composer\Command\BaseCommand.
- Remove assumptions that depend on Composer IO or
BaseCommand behavior from the real command.
- Ensure the Composer capability exposes this command through the new
ProxyCommand adapter once migrated.
- Preserve the existing command name, aliases, description, help, arguments, options, output behavior, and exit codes.
- Keep command-specific behavior in the real Symfony command or a handler, not in the Composer proxy.
Command-Specific Notes
Risk level: High
Orchestrates PHPDoc style checks/fixes through PHP-CS-Fixer/Rector-related paths and composer metadata. Migrate after process/metadata boundaries are stable.
Acceptance Criteria
PhpDocCommand no longer extends Composer\Command\BaseCommand.
- The command is available through
bin/dev-tools phpdoc --help.
- The command is available through Composer plugin discovery in the composer-plugin-consumer fixture.
- The Composer-facing command is a proxy when this command has been migrated.
- Existing tests for
PhpDocCommand are updated to exercise the Symfony command runtime.
- At least one regression verifies that the Composer proxy can execute or display help for
phpdoc.
- No user-facing option, argument, alias, or help text is intentionally removed.
Non-Goals
- Do not extract this command into a separate package in this issue.
- Do not build
dev-tools-shim in this issue.
- Do not migrate unrelated commands in this issue unless required by shared infrastructure.
Summary
Migrate the
phpdoccommand from the legacy ComposerBaseCommandruntime to the new Symfony-command runtime proposed in #199.This is one command-level subissue for the incremental Composer decoupling plan. It keeps the migration small enough to validate through both command entrypoints before moving to the next command.
Context
Parent issue: #199
Architecture discussion: #197
Current command class:
FastForward\DevTools\Console\Command\PhpDocCommandMigration Scope
Symfony\Component\Console\Command\Commandinstead ofComposer\Command\BaseCommand.BaseCommandbehavior from the real command.ProxyCommandadapter once migrated.Command-Specific Notes
Risk level: High
Orchestrates PHPDoc style checks/fixes through PHP-CS-Fixer/Rector-related paths and composer metadata. Migrate after process/metadata boundaries are stable.
Acceptance Criteria
PhpDocCommandno longer extendsComposer\Command\BaseCommand.bin/dev-tools phpdoc --help.PhpDocCommandare updated to exercise the Symfony command runtime.phpdoc.Non-Goals
dev-tools-shimin this issue.