---
title: "Breaking: #108310 - Require composer.json in classic mode"
manual: "TYPO3 Core Changelog"
version: "main"
permalink: "https://docs.typo3.org/permalink/changelog:breaking-108310-1732545123"
source: "Changelog/14.0/Breaking-108310-RequireComposerJsonInClassicMode.rst"
typo3-version: "14.0"
typo3-major: 14
type: "breaking"
issue: 108310
forge: "https://forge.typo3.org/issues/108310"
tags: ["PHP-API", "NotScanned", "ext:core"]
rendered: "2026-09-20T18:31:11+00:00"
---

# Breaking: #108310 - Require composer.json in classic mode {#breaking-108310-1732545123}

See [forge#108310](https://forge.typo3.org/issues/108310)

## Description {#description}

Extension detection in classic mode now requires a valid `composer.json`
file instead of `ext_emconf.php`. The `composer.json` file must
include `"type": "typo3-cms-*"` and the extension key in
`extra.typo3/cms.extension-key`.

## Impact {#impact}

Extensions without a valid `composer.json` are no longer detected
and loaded in classic mode installations.

## Affected installations {#affected-installations}

All classic mode installations must verify that every extension contains
a `composer.json` with:

-   `"type"` starting with `"typo3-cms-"`
-   `"extra.typo3/cms.extension-key"` containing the extension key

Composer-based installations are not affected.

## Migration {#migration}

Extension authors must ensure their extensions include a valid
`composer.json`. TER extensions have required this since 2021.

Example `composer.json`:

```json
{
    "name": "vendor/extension-name",
    "type": "typo3-cms-extension",
    "extra": {
        "typo3/cms": {
            "extension-key": "extension_name"
        }
    }
}
```
