Make
Kickstart a TYPO3 Extension with "Make"
"Make" is a TYPO3 extension provided by b13. It features a quick way to create a basic extension scaffold on the console. The extension is available for TYPO3 v10 and above.
1. Install "Make"
In Composer-based TYPO3 installations you can install the
extension via Composer, you should install it as 
        dev dependency as
it should not be used on production systems:
composer req b13/make --devddev composer req b13/make --devTo install the extension on Classic mode installations, download it from the TYPO3 Extension Repository (TER), extension "make".
2. Kickstart an extension
Call the CLI script on the console:
vendor/bin/typo3 make:extensionddev exec vendor/bin/typo3 make:extensiontypo3/sysext/core/bin/typo3 make:extension3. Answer the prompt
"Make" will now answer some questions that we describe here in-depth:
- Enter the composer package name- (e. - g. "vendor/ - awesome"): 
- 
    A valid composer package name is defined in the getcomposer name scheme. The vendor should be a unique name that is not yet used by other companies or developers. Example: my-vendor/ my- test 
- Enter the extension key- [my_ - test]: 
- The extension key should follow the rules for best practises on
choosing an extension key if you plan to publish
your extension. In most cases, the default, here my_, is sufficient. Press enter to accept the default or enter another name.test 
- Enter the PSR-- 4 namespace - [T3docs/ - My - Test]: 
- The namespace has to be unique within the project. Usually the default should be unique, as your vendor is unique, and you can accept it by pressing enter.
- Choose supported TYPO3 versions- (comma separate for multiple) - [TYPO3 v11 LTS]: 
- If you want to support both TYPO3 v11 and v12, enter the following:
11,12
- Enter a description of the extension:
- A description is mandatory. You can change it later in the file
composer.jsonof the extension.
- Where should the extension be created?- [src/ - extensions/]: 
- If you have a special path for installing local extensions like
packagesenter it here. Otherwise you can accept the default.
- May we add a basic service configuration for you?- (yes/ - no) - [yes]: 
- If you choose yes"Make" will create a basicConfiguration/Services.yamlto configure dependency injection.
- May we create a ext_- emconf. - php for you? - (yes/ - no) - [no]: 
- Mandatory for extensions supporting TYPO3 v10. Starting with v11:
If your extension should be installable in legacy TYPO3 installations
choose yes. This is not necessary for local extensions in Composer-based installations.
4. Have a look at the result
"Make" created a subfolder under src/ with the
composer name (without vendor) of your extension. By default, it contains
the following files:
src/extensions 
    $ tree src/extensions
└── my-test
    ├── Classes
    ├── Configuration
    |   └── Services.yaml (optional)
    ├── composer.json
    └── ext_emconf.php (optional)5. Install the extension
On Composer-based installations the extension is not installed yet. It will not be displayed in the Extension Manager in the backend.
To install it, open the main composer.json of your project (not the
one in the created extension) and add the extension directory as new repository:
{
    "name": "my-vendor/my-project",
    "repositories": {
        "0_packages": {
            "type": "path",
            "url": "src/extensions/*"
        }
    },
    "...": "..."
}Then require the extension on Composer-based systems, using the composer name defined in the prompt of the script:
composer req t3docs/my-test:@devddev composer req my-vendor/my-test:@devActivate the extension in the Extension Manager.
6. Add functionality
The following additional commands are available to add more functionality to your extension:
- make:- Create a new backend controller- backendcontroller 
- make:- Create a new command- command 
- make:- Create a new event listener- eventlistener 
- make:- Create a new middleware- middleware