Middleware¶
New in version 12.3.
Doctrine DBAL supports custom driver middlewares since version 3. 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 to implement SQL logging capabilities.
For more information on driver middlewares, see the Architecture chapter of the Doctrine DBAL documentation. Furthermore, look up the implementation of the EXT:adminpanel/Classes/Log/DoctrineSqlLoggingMiddleware.php in the adminpanel system extension as an example.
Registering a new driver middleware¶
EXT:my_extension/ext_localconf.php¶
<?php
declare(strict_types=1);
use MyVendor\MyExtension\Database\Log\MyMiddleware;
defined('TYPO3') or die();
$GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['Default']['driverMiddlewares']['myextension_mymiddleware']
= MyMiddleware::class;