async / amp-sql-profiler-bundle
此包最新版本(1.3.0)没有可用的许可信息。
Amp SQL分析器,用于Symfony WebProfilerBundle。
1.3.0
2024-03-10 22:31 UTC
Requires
- php: ^8.2
- amphp/sql: ^2
- scriptfusion/static-class: ^1
- symfony/web-profiler-bundle: ^6
This package is auto-updated.
Last update: 2024-09-10 23:26:59 UTC
README
如果你在使用 Amp 和 Symfony,那么你可能在基于 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: ~