fusionspim / php-capsule-listener
此包已被弃用且不再维护。未建议替代包。
用于与Laravel的Eloquent ORM一起使用的简单调试工具
7.0.0
2022-04-25 11:40 UTC
Requires
- php: ^8.0
- ext-json: ^8.0
- ext-mbstring: ^8.0
- illuminate/database: ^9.0
- illuminate/events: ^9.0
- symfony/var-dumper: ^5.0 || ^6.0
Requires (Dev)
- ext-sqlite3: ^8.0
- ergebnis/composer-normalize: ^2.6
- fusionspim/php-cs-fixer-config: ^10.0
- phpunit/phpunit: ^9.0.0
- dev-master
- 7.0.0
- 6.0.0
- 5.0.8
- 5.0.7
- 5.0.6
- 5.0.5
- 5.0.4
- 5.0.3
- 5.0.2
- 5.0.1
- 5.0.0
- 4.0.1
- 4.0.0
- 3.2.0
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.0
- 2.4.1
- 2.4.0
- 2.3.0
- 2.2.0
- 2.1.0
- 2.0.0
- 1.0.0
- dev-dependabot/composer/illuminate/events-9.27.0
- dev-dependabot/composer/illuminate/database-9.27.0
- dev-dependabot/composer/phpunit/phpunit-9.5.24
This package is auto-updated.
Last update: 2022-09-13 14:44:25 UTC
README
Capsule Debug Listener 是一个用于与 Laravel 的 Eloquent ORM 一起使用的简单调试工具。它以 Eloquent 的独立版本(standalone version of Eloquent)命名。
它将显示 Eloquent 在您的代码中执行的查询,以及这些查询在代码库中的来源。
安装
composer require --dev fusionspim/php-capsule-listener
使用
您可以通过创建一个新实例并启用监听来开始使用它
$listener = new CapsuleDebugListener;
$listener->enable();
// Run some SQL.
$listener->disable();
如果您需要在多个文件中启动和停止调试器,可以使用它作为单例
CapsuleDebugListener::getInstance()->enable();
// Run some SQL.
CapsuleDebugListener::getInstance()->disable();
您还可以通过指定一个名称来将其作为多例使用。这对于多个连接可能很有用
CapsuleDebugListener::getInstance('write')
->setConnection(Capsule::connection('write'))
->enable();
// Run some SQL.
CapsuleDebugListener::getInstance('write')->disable();
还有一些方便的辅助函数对。您可以这样输出跟踪信息
start_dumping_queries();
// Run some SQL.
stop_dumping_queries();
您也可以这样捕获跟踪信息
start_capturing_queries();
// Run some SQL.
$logs = stop_capturing_queries();
var_dump($logs);
默认情况下,输出使用 Symfony的VarDumper 输出,但您也可以在调用 enable()
时指定自己的输出处理函数
(new CapsuleDebugListener)->enable(function (array $stack) {
// Your custom output handling here.
});
跟踪数组结构如下
[
// A running count of how many queries have run.
'count' => 1,
// The SQL run with parameters replaced.
// May contain sensitive data.
'sql' => 'SELECT * FROM foo',
// An array that contains a cleaned up stack trace of where the query originated from.
// Excludes Eloquent's codebase and any magic functions.
'callees' => [
'Foo\Bar\Model:do_something in /src/Foo/Bar/Model.php:256',
],
]
如果您需要调试特定的连接,可以通过 setConnection()
指定
$listener = new CapsuleDebugListener();
$listener->setConnection(Capsule::connection('write'));
$listener->enable();
// Run some SQL.
$listener->disable();