---
title: "Create a new backend controller"
manual: "TYPO3 Explained"
version: "12.4"
permalink: "https://docs.typo3.org/permalink/t3coreapi:extension-make-backend-controller@12.4"
source: "ExtensionArchitecture/Kickstarter/Make/BackendController.rst"
rendered: "2026-10-21T15:29:37+00:00"
---

> [!WARNING]
> **Attention**
>
> TYPO3 v12 has reached end-of-life as of April 30th 2026 and
> is no longer being maintained. Use the version switcher on the top
> left of this page to select documentation for a supported version of TYPO3.
>
> Need more time before upgrading?
> You can purchase Extended Long Term Support (ELTS) for TYPO3 v12 here:
> [TYPO3 ELTS](https://typo3.com/services/extended-support-elts).

# Create a new backend controller {#extension-make-backend-controller}

If you do not have one yet, [create a basic extension](https://docs.typo3.org/permalink/t3coreapi:extension-make@12.4)
to put the controller in.

**Composer**

```bash
vendor/bin/typo3 make:backendcontroller
```

**Classic mode installation (no Composer)**

```bash
typo3/sysext/core/bin/typo3 make:backendcontroller
```

You will be prompted with a list of installed extensions. If your newly created
extension is missing, check if you installed it properly.

When prompted, choose a name and path for the backend controller. The following
files will be generated, new or changed files marked with a star (\*):

**Page tree of directory `src/extensions`**

```none
$ tree src/extensions
└── my-test
    ├── Classes
    |   └── Backend (*)
    |   |   └── Controller (*)
    |   |   |   └── MyBackendController.php (*)
    ├── Configuration
    |   ├── Backend (*)
    |   |   └── Routes.php (*)
    |   └── Services.yaml (*)
    ├── composer.json
    └── ext_emconf.php
```

Learn how to turn the backend controller into a full-fledged backend module in
the chapter [Backend modules API](https://docs.typo3.org/permalink/t3coreapi:backend-modules@12.4).
