[TASK] Allow multiple extractor services with the same priority
[Packages/TYPO3.CMS.git] / typo3 / sysext / core / Documentation / Changelog / 8.0 / Feature-73042-IntroduceNativeSupportForSymfonyConsole.rst
1
2 .. include:: ../../Includes.txt
3
4 ==============================================================
5 Feature: #73042 - Introduce native support for Symfony Console
6 ==============================================================
7
8 See :issue:`73042`
9
10 Description
11 ===========
12
13 TYPO3 supports the Symfony Console component out-of-the-box now by providing a new Command Line script
14 located in `typo3/sysext/core/bin/typo3`. On TYPO3 instances installed via Composer, the binary is
15 linked into the `bin-dir`, e.g. `bin/typo3`.
16
17 The new binary still supports the existing command-line arguments when no proper Symfony Console command
18 was found as a fallback.
19
20 Registering a command to be available via the `typo3` command line tool works by putting a
21 `Configuration/Commands.php` file into any installed extension. This lists the Symfony/Console/Command classes
22 to be executed by `typo3` is an associative array. The key is the name of the command to be called as
23 the first argument to `typo3`.
24
25 A required parameter when registering a command is the `class` property which should inherit from Symfony's
26 base Command class.
27
28 A `Configuration/Commands.php` could look like this:
29
30 .. code-block:: php
31
32     return [
33         'backend:lock' => [
34             'class' => \TYPO3\CMS\Backend\Command\LockBackendCommand::class
35         ],
36         'referenceindex:update' => [
37             'class' => \TYPO3\CMS\Backend\Command\ReferenceIndexUpdateCommand::class
38         ]
39     ];
40
41
42 An example call could look like:
43
44 .. code-block:: sh
45
46         bin/typo3 backend:lock http://www.mydomain.com/maintenance.html
47
48 For a non-Composer installation:
49
50 .. code-block:: sh
51
52         typo3/sysext/core/bin/typo3 backend:lock http://www.mydomain.com/maintenance.html
53
54
55 Impact
56 ======
57
58 Using Symfony Commands and calling `typo3` instead of using `typo3/cli_dispatch.phpsh` is
59 now the preferred way for writing command line code.
60
61 .. index:: PHP-API, Backend, CLI