maispace / make
Extended TYPO3 make/kickstarter CLI tool with make commands for controllers, events, exceptions, migrations, traits, viewhelpers, services, middlewares and upgrade wizards
Package info
github.com/mai-space-de/typo3-extension-make
Type:typo3-cms-extension
pkg:composer/maispace/make
Requires
- php: ^8.2
- typo3/cms-core: ^13.4 || ^14.0
Requires (Dev)
- armin/editorconfig-cli: ^2.1
- friendsofphp/php-cs-fixer: ^3.0
- helmich/typo3-typoscript-lint: ^3.1
- phpstan/phpstan: ^2.0
- phpunit/phpunit: ^11.0
- saschaegerer/phpstan-typo3: ^2.0
- typo3/testing-framework: ^8.0
This package is auto-updated.
Last update: 2026-04-28 12:57:09 UTC
README
Extended TYPO3 make/kickstarter CLI tool — based on b13/make with tests, linting and additional make commands.
Requires: TYPO3 13.4 LTS / 14.x · PHP 8.2+
Overview
This TYPO3 extension provides a collection of vendor/bin/typo3 make:* commands that let you scaffold PHP components directly from the command line — no more copy-pasting boilerplate code.
| Command | What it creates |
|---|---|
make:backendcontroller |
Backend controller (with route registration) |
make:command |
Symfony console command |
make:controller |
Extbase ActionController |
make:dataprocessor |
TypoScript data processor |
make:dto |
Data Transfer Object (DTO) |
make:enum |
PHP enum (string-, int-backed, or pure) |
make:event |
PSR-14 event class |
make:eventlistener |
PSR-14 event listener (with service configuration) |
make:exception |
PHP exception class |
make:factory |
Factory class |
make:hook |
TYPO3 hook class |
make:interface |
PHP interface |
make:migration |
Data migration class |
make:middleware |
PSR-15 middleware (with RequestMiddlewares.php entry) |
make:model |
Extbase domain model (AbstractEntity) |
make:repository |
Extbase domain repository |
make:routeenhancer |
Custom site-route enhancer |
make:service |
Service class |
make:trait |
PHP trait |
make:typeconverter |
Extbase property type converter |
make:upgradewizard |
TYPO3 upgrade wizard (with service configuration) |
make:utility |
Utility class |
make:validator |
Extbase validator |
make:viewhelper |
Fluid AbstractViewHelper |
Installation
composer require --dev maispace/mai-make
The extension is active automatically via composer. All commands are available via the TYPO3 CLI:
vendor/bin/typo3 list make
Usage
Each command is interactive — it will ask you for the class name, directory and any additional information it needs. You can also pre-fill values through environment variables to speed up scaffolding in automated workflows.
Examples
# Create an Extbase controller vendor/bin/typo3 make:controller my_extension # Create a PSR-14 event vendor/bin/typo3 make:event my_extension # Create a PSR-14 event listener vendor/bin/typo3 make:eventlistener my_extension # Create a PSR-15 middleware (also writes RequestMiddlewares.php) vendor/bin/typo3 make:middleware my_extension # Create a backend controller (writes Routes.php + Services.yaml tag) vendor/bin/typo3 make:backendcontroller my_extension # Create a console command (writes Services.yaml tag) vendor/bin/typo3 make:command my_extension # Create an upgrade wizard (writes Services.yaml tag) vendor/bin/typo3 make:upgradewizard my_extension # Create a PHP enum (prompts for backing type: string / int / pure) vendor/bin/typo3 make:enum my_extension
Environment variables
You can pre-set values so the commands don't ask for them interactively. All variables are prefixed with MAKE_.
| Variable | Used by | Default |
|---|---|---|
MAKE_EXTENSION_KEY |
all | (interactive) |
MAKE_CONTROLLER_DIR |
make:controller |
Controller |
MAKE_CONTROLLER_ACTION |
make:controller |
index |
MAKE_EVENT_DIR |
make:event |
Event |
MAKE_EVENT_LISTENER_DIR |
make:eventlistener |
EventListener |
MAKE_EVENT_LISTENER_IDENTIFIER_PREFIX |
make:eventlistener |
(package prefix) |
MAKE_EXCEPTION_DIR |
make:exception |
Exception |
MAKE_EXCEPTION_PARENT |
make:exception |
\RuntimeException |
MAKE_MIGRATION_DIR |
make:migration |
Migration |
MAKE_MIGRATION_DESCRIPTION |
make:migration |
(empty) |
MAKE_MIDDLEWARE_DIR |
make:middleware |
Middleware |
MAKE_MIDDLEWARE_IDENTIFIER_PREFIX |
make:middleware |
(package prefix) |
MAKE_MIDDLEWARE_TYPE |
make:middleware |
frontend |
MAKE_SERVICE_DIR |
make:service |
Service |
MAKE_TRAIT_DIR |
make:trait |
Trait |
MAKE_UPGRADE_WIZARD_DIR |
make:upgradewizard |
UpgradeWizard |
MAKE_UPGRADE_WIZARD_PREFIX |
make:upgradewizard |
(extension key) |
MAKE_UPGRADE_WIZARD_TITLE |
make:upgradewizard |
(class name) |
MAKE_VIEWHELPER_DIR |
make:viewhelper |
ViewHelpers |
MAKE_BACKEND_CONTROLLER_DIR |
make:backendcontroller |
Backend/Controller |
MAKE_BACKEND_CONTROLLER_PREFIX |
make:backendcontroller |
(extension key) |
MAKE_COMMAND_DIR |
make:command |
Command |
MAKE_COMMAND_NAME_PREFIX |
make:command |
(extension key) |
MAKE_INTERFACE_DIR |
make:interface |
(empty — root of Classes/) |
MAKE_MODEL_DIR |
make:model |
Domain/Model |
MAKE_REPOSITORY_DIR |
make:repository |
Domain/Repository |
MAKE_DATA_PROCESSOR_DIR |
make:dataprocessor |
DataProcessing |
MAKE_DTO_DIR |
make:dto |
Dto |
MAKE_ENUM_DIR |
make:enum |
Enum |
MAKE_ENUM_BACKING_TYPE |
make:enum |
string |
MAKE_FACTORY_DIR |
make:factory |
Factory |
MAKE_HOOK_DIR |
make:hook |
Hook |
MAKE_ROUTE_ENHANCER_DIR |
make:routeenhancer |
Routing/Enhancer |
MAKE_TYPE_CONVERTER_DIR |
make:typeconverter |
Property/TypeConverter |
MAKE_UTILITY_DIR |
make:utility |
Utility |
MAKE_VALIDATOR_DIR |
make:validator |
Validator |
Development
Setup
composer install
Run tests
composer test:unit
Code style
# Check composer lint:check # Fix composer lint:fix
PHPStan
composer check:phpstan
Credits
Based on b13/make by b13 GmbH.
License
GPL-2.0-or-later — see LICENSE.