cerbero/sql-dumper

Laravel包,用于导出SQL查询。

1.2.0 2021-01-14 08:10 UTC

This package is auto-updated.

Last update: 2024-09-09 14:22:51 UTC


README

Author PHP Version Laravel Version Build Status Coverage Status Quality Score Latest Version Software License PSR-12 Total Downloads

Laravel包,用于导出SQL查询,相关EXPLAIN和代码中的位置,以不同格式显示

  • HTML
  • markdown
  • 电子邮件
  • 控制台
  • 日志

安装

通过Composer

composer require --dev cerbero/sql-dumper

要自定义此包的一些方面,可以通过以下方式生成可选的config/sql_dumper.php文件:

php artisan vendor:publish --tag=sql-dumper

用法

导出SQL查询最简单的方法是调用辅助函数。每个导出器都有一个辅助函数

  • ds() 使用在config/sql_dumper.php中指定的默认导出器导出SQL查询
  • dsConsole() 使用控制台导出器导出SQL查询
  • dsEmail() 使用电子邮件导出器导出SQL查询
  • dsHtml() 使用HTML导出器导出SQL查询
  • dsLog() 使用日志导出器导出SQL查询
  • dsMarkdown() 使用Markdown导出器导出SQL查询

在辅助函数的闭包中执行的任何SQL查询都将被导出

$user = ds(function () {
    return User::with('posts')->find(1);
});

根据导出器和数据库驱动程序,SQL查询的导出将如下所示

控制台导出
电子邮件或HTML文件或Markdown文件导出
日志文件导出

除了默认导出器之外,我们还可以在config/sql_dumper.php中自定义SQL导出器的默认行为。例如,HTML导出的默认路径是/storage/sql_dump_TIMESTAMP.html,但我们可以设置不同的路径

return [
    HtmlDumper::class => [
        'path' => storage_path('foo.html'),
    ],
];

还可以自定义模板和电子邮件收件人,有关详细信息,请参阅[配置][link-config]。

此包包含一个中间件,可以轻松地在路由或路由组中导出SQL查询。该中间件可以在app/Http/Kernel.php中注册

protected $routeMiddleware = [
    'sql.dump' => \Cerbero\SqlDumper\Http\Middleware\SqlDump::class,
];

然后我们可以将其添加到路由中以运行默认导出器

Route::middleware('sql.dump')->get('users', function () {
    return User::all();
});

如果我们想使用不同的导出器,我们可以将其作为参数传递给中间件

Route::middleware('sql.dump:log')->get('users', function () {
    return User::all();
});

有效的参数是

  • 控制台
  • 电子邮件
  • html
  • 日志
  • markdown

变更日志

有关最近更改的信息,请参阅变更日志

测试

$ composer test

贡献

有关详细信息,请参阅贡献行为准则

安全

如果您发现任何与安全相关的问题,请通过电子邮件andrea.marco.sartori@gmail.com联系,而不是使用问题跟踪器。

致谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件