slam/dbal-debugstack-middleware

Doctrine\DBAL 中间件,用于精确查询调试(DebugStack 替代品)

v2.0.0 2024-02-06 16:14 UTC

This package is auto-updated.

Last update: 2024-09-20 15:58:01 UTC


README

Latest Stable Version Downloads Integrate

Doctrine\DBAL 中间件,用于精确查询调试(DebugStack 替代品)。与默认的日志中间件 相比,此中间件

  1. 跟踪查询的执行时间
  2. 不处理异常
  3. 不跟踪断开连接

安装

composer require slam/dbal-debugstack-middleware

用法

use Doctrine\DBAL\Configuration;
use Doctrine\DBAL\DriverManager;
use Doctrine\DBAL\ParameterType;
use Slam\DbalDebugstackMiddleware\DebugStack;
use Slam\DbalDebugstackMiddleware\Middleware;

$debugStack = new DebugStack();

$conn = DriverManager::getConnection(
    $connectionParams,
    (new Configuration)->setMiddlewares([
        new Middleware($debugStack)
    ])
);

$result = $conn->executeQuery(
    'SELECT * FROM users WHERE active = :active',
    ['active' => true],
    ['active' => ParameterType::BOOLEAN],
);

print_r($debugStack->getQueries());

/*
 * Output:
 *
    Array
    (
        [0] => Slam\DbalDebugstackMiddleware\Query Object
            (
                [sql] => SELECT * FROM users WHERE active = :active
                [params] => Array
                    (
                        [active] => true
                    )
                [types] => Array
                    (
                        [active] => 5
                    )
                [executionMs] => 72.05312
            )
    )
 */