如果你正在使用 roave/psr-container-doctrine 包,你可以在自动加载配置中通过关联键 middlewares 注册新的中间件。
接下来,你需要创建一个新的服务,该服务构建一个 Doctrine\DBAL\Logging\Middleware 类的实例。
以下是一个结合 Monolog 日志记录器构建服务的示例:
class DoctrineMiddlewareLoggerFactory implements FactoryInterface
{
public function __invoke(ContainerInterface $container, $requestedName, ?array $options = null)
{
$logger = new Logger('doctrine');
$logger->pushHandler(new StreamHandler('logs/doctrine.log', Logger::DEBUG));
$logger->pushProcessor(new PsrLogMessageProcessor(null, true));
return new Middleware($logger);
}
}
使用工厂方法将服务与依赖项进行绑定:
return [
'factories' => [
'doctrine.middleware.logger' => DoctrineMiddlewareLoggerFactory::class,
在配置键中配置你的中间件:
return [
'configuration'=>[
'orm_default'=>[
'middlewares'=>[
'doctrine.middleware.logger'
]
]
],
]