---
title: "Important: #94280 - Move contents of ext_*.php into global namespace"
manual: "TYPO3 Core Changelog"
version: "main"
permalink: "https://docs.typo3.org/permalink/changelog:important-94280"
source: "Changelog/11.4/Important-94280-MoveContentsOfExtPhpIntoLocalScopes.rst"
typo3-version: "11.4"
typo3-major: 11
type: "important"
issue: 94280
forge: "https://forge.typo3.org/issues/94280"
tags: ["PHP-API", "ext:core"]
rendered: "2026-09-20T18:31:11+00:00"
---

# Important: #94280 - Move contents of ext\_\*.php into global namespace {#important-94280}

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

## Description {#description}

When warming up caches, the code of the files `ext_localconf.php` and
`ext_tables.php` are now scoped into the global namespace.

> [!WARNING]
> The content of such `ext_*.php` files **must not** be wrapped in a
> local namespace by extension authors. This will result in nested namespaces
> and therefore cause PHP errors only solvable by clearing the caches via
> Install Tool!

Example code from the cache file:

```php
/**
 * Extension: frontend
 * File: /var/www/html/public/typo3/sysext/frontend/ext_localconf.php
 */

namespace {
    // Content of EXT:frontend/ext_localconf.php
}
```

Having a namespace allows extension authors to import classes by the
keyword `use`.

Example `ext_localconf.php`:

```php
<?php

use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;

defined('TYPO3') or die();

ExtensionManagementUtility::addUserTSConfig('
    options.saveDocView = 1
    options.saveDocNew = 1
    options.saveDocNew.pages = 0
    options.saveDocNew.sys_file = 0
    options.saveDocNew.sys_file_metadata = 0
    options.disableDelete.sys_file = 1
');
```
