---
title: "Feature: #100089 - Introduce Doctrine DBAL v3 driver middlewares"
manual: "TYPO3 Core Changelog"
version: "main"
permalink: "https://docs.typo3.org/permalink/changelog:feature-100089-1677961107"
source: "Changelog/12.3/Feature-100089-IntroduceDoctrineDBALv3drivermiddlewares.rst"
modified: "2026-09-15T10:46:36+00:00"
---

# Feature: #100089 - Introduce Doctrine DBAL v3 driver middlewares

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

## Description

Since v3, Doctrine DBAL supports adding custom driver middlewares. These
middlewares act as a decorator around the actual `Driver` component.
Subsequently, the `Connection`, `Statement` and `Result` components can be
decorated as well. These middlewares must implement the
`\Doctrine\DBAL\Driver\Middleware` interface.
A common use case would be a middleware for implementing SQL logging capabilities.

For more information on driver middlewares,
see [https://www.doctrine-project.org/projects/doctrine-dbal/en/current/reference/architecture.html](https://www.doctrine-project.org/projects/doctrine-dbal/en/current/reference/architecture.html).
Furthermore, you can look up the implementation of the
`\TYPO3\CMS\Adminpanel\Log\DoctrineSqlLoggingMiddleware` in ext:adminpanel
as an example.

## Registering a new driver middleware

```php
$GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['Default']['driverMiddlewares']['adminpanel_loggingmiddleware']
    = \TYPO3\CMS\Adminpanel\Log\DoctrineSqlLoggingMiddleware::class;
```

## Impact

Using custom middlewares allows to enhance the functionality of Doctrine
components.
