async/amp-sql-profiler-bundle

此包最新版本(1.3.0)没有可用的许可信息。

Amp SQL分析器,用于Symfony WebProfilerBundle。

1.3.0 2024-03-10 22:31 UTC

This package is auto-updated.

Last update: 2024-09-10 23:26:59 UTC


README

如果你在使用 AmpSymfony,那么你可能在基于 Amp,但这意味着 Doctrine 将变得无用(除了可能的使用它的查询构建器),因此你不能使用来自 DoctrineBundle 的方便的查询分析器。这是 Amp 的缺失 SQL 分析器。

功能

在 Symfony 应用程序中分析 Amp SQL 连接,并在 Symfony 分析器 工具栏中显示结果。

  • 在工具栏视图中显示查询摘要。
  • 在分析器视图中显示完整的查询细节。
  • 支持事务。
  • 支持回溯。

限制

使用不受支持的特性可能会抛出 NotImplementedException

  • 不支持预定义语句。
  • 不支持事务保存点。

安装

使用 Composer 将捆绑包添加到您的项目中。

composer require --dev async/amp-sql-profiler-bundle

如果已安装 Symfony Flex,则它应该会自动使用类似于以下内容的行更新 bundles.php

ScriptFUSION\AmpSqlProfilerBundle\AmpSqlProfilerBundle::class => ['dev' => true, 'test' => true],

我们建议删除 'test' 键,并且只以 dev 运行捆绑包。如果 Flex 不可用,则可以手动添加该行。

要启用分析,必须在依赖注入时将所有 Amp\Sql\Pool 实例替换为 ProfiledPool。为此,请将以下行添加到 services_dev.yaml

  # Enable Amp SQL profiling.
  Amp\Sql\Pool:
    factory: '@ScriptFUSION\AmpSqlProfilerBundle\ProfiledPoolFactory'

遗憾的是,这将会创建一个循环引用,因为 ProfiledPoolFactory 创建了一个 ProfiledPool 实例,而它需要一个 Amp\Sql\Pool 实例。这可以通过指定我们想要分析的具体 Pool 实现来解决。例如,以下配置可能足以分析 Postgres。

  ScriptFUSION\AmpSqlProfilerBundle\ProfiledPool:
    arguments:
      - '@Amp\Postgres\PostgresConnectionPool'

  Amp\Postgres\PostgresConnectionPool: ~