Deprecation: #89139 - Console Commands configuration format Commands.php

See Issue #89139

Description

The console command configuration file format Configuration/Commands.php has been marked as deprecated in favor of the symfony service tag console.command. The tag allows to configure dependency injection and command registration in one single location.

Impact

Providing a command configuration in Configuration/Commands.php will trigger a PHP E_USER_DEPRECATED error when the respective commands have not already been defined via symfony service tags.

Extensions that provide both, the deprecated configuration file and service tags, will not trigger a PHP E_USER_DEPRECATED error in order to allow extensions to support multiple TYPO3 major versions.

Affected Installations

TYPO3 installations with custom extensions that configure symfony console commands via Configuration/Commands.php and have not been migrated to add symfony service tags.

Migration

Add the console.command tag to command classes. Use the tag attribute command to specify the command name. The optional tag attribute schedulable may be set to false to exclude the command from the TYPO3 scheduler.

services:
  _defaults:
    autowire: true
    autoconfigure: true
    public: false

  MyVendor\MyExt\Command\FooCommand:
    tags:
      - name: 'console.command'
        command: 'my:command'
        schedulable: false

Command aliases are to be configured as separate tags. The optional tag attribute alias should be set to true for alias commands.

MyVendor\MyExt\Command\BarCommand:
  tags:
    - name: 'console.command'
      command: 'my:bar'
    - name: 'console.command'
      command: 'my:old-bar-command'
      alias: true
      schedulable: false