---
title: "Breaking: #107712 - New method hasSubmoduleOverview() in ModuleInterface"
manual: "TYPO3 Core Changelog"
version: "main"
permalink: "https://docs.typo3.org/permalink/changelog:breaking-107712-1760548718"
source: "Changelog/14.0/Breaking-107712-NewMethodHasSubmoduleOverviewInModuleInterface.rst"
typo3-version: "14.0"
typo3-major: 14
type: "breaking"
issue: 107712
forge: "https://forge.typo3.org/issues/107712"
tags: ["Backend", "PHP-API", "NotScanned", "ext:backend"]
rendered: "2026-09-20T18:31:11+00:00"
---

# Breaking: #107712 - New method hasSubmoduleOverview() in ModuleInterface {#breaking-107712-1760548718}

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

## Description {#description}

The interface `\TYPO3\CMS\Backend\Module\ModuleInterface` has been extended
with a new method `hasSubmoduleOverview()` to support the new card-based
submodule overview feature introduced in
[Feature: #107712 - Introduce card-based submodule overview](https://docs.typo3.org/permalink/changelog:feature-107712-1760548718).

## Impact {#impact}

All custom implementations of
`\TYPO3\CMS\Backend\Module\ModuleInterface` must now implement the new
method `hasSubmoduleOverview(): bool`.

Existing implementations that do not implement this method will trigger a PHP
fatal error.

## Affected installations {#affected-installations}

TYPO3 installations with custom PHP code that directly implement the
`ModuleInterface` are affected.

This is uncommon, as most backend modules use the provided
`\TYPO3\CMS\Backend\Module\Module` class or extend from
`\TYPO3\CMS\Backend\Module\BaseModule`.

## Migration {#migration}

Add the `hasSubmoduleOverview()` method to your custom implementation of
`ModuleInterface`.

The method should typically return the configured value rather than a fixed
boolean:

```php
use TYPO3\CMS\Backend\Module\ModuleInterface;

class MyCustomModule implements ModuleInterface
{
    protected array $configuration = [];

    public function hasSubmoduleOverview(): bool
    {
        // Return the configured value, defaulting to false
        return $this->configuration['showSubmoduleOverview'] ?? false;
    }
}
```

This allows the behavior to be controlled through the module's configuration.
