sofa / laravel-db-queries-alert
针对 Laravel 应用中数据库查询滥用进行简单检查,即检查您的查询!
Requires
- php: >=7.1.0
- illuminate/database: ^5.4
This package is auto-updated.
Last update: 2024-09-07 15:54:50 UTC
README
即检查您的查询!
Laravel 和 Eloquent 非常美丽且易于使用。许多包使事情更加简单,这是很棒的!但是,这也有代价。你可能会发现自己处于应用程序变慢或完全冻结的情况,而代码没有显著变化。这可能是由于你在 Eloquent 关系上遇到 数据库查询滥用 造成的,比如 N+1
查询问题,或者你使用的某个包中的某些魔法设置。
此包将通过检查正在运行的查询并在达到指定阈值时记录 info|warning|error
来帮助你解决这个问题。
该包的目标仅仅是提醒你,而不涉及细节。它为你提供一些线索,以便你能够立即发现问题,或者你可以使用 laravel-debugbar、blackfire、xdebug 或你选择的任何其他工具进行更深入的分析。
使用方法
安装包后,你可以通过调用
$ php artisan vendor:publish --provider="Sofa\DbQueriesAlert\ServiceProvider"
并编辑 config/db_queries_alert.php
return [ 'error' => 100, 'warning' => 50, 'info' => 20, ];
现在你准备好了。当你的应用程序达到给定的阈值时,包将调用 Log::error
(或 warning|info
)。在应用程序使用的监控服务中捕获此错误(或简单地检查你本地的 storage/logs/laravel[-YYYY-MM-DD].log
文件)。
注意
此包完全依赖于 Laravel,并且仅应在那里使用,因此没有 DI,它毫不掩饰地使用外观和助手,甚至不试图隐藏它 ¯\(ツ)/¯
安装
-
将包添加到你的项目中
path/to/your/app$ composer require sofa/laravel-db-queries-alert
-
然后手动将提供者添加到你的
config/app.php
包支持 自动发现,因此此步骤仅适用于 Laravel 5.4。
// config/app.php 'providers' => [ ... Sofa\DbQueriesAlert\ServiceProvider::class, ],
-
在
app/Http/Kernel.php
文件中添加全局中间件堆栈条目,并在你的.env
文件中设置标志// app/Http/Kernel.php class Kernel extends HttpKernel { /** * The application's global HTTP middleware stack. * * These are run for every single Request. * * @var array */ protected $middleware = [ ... \Sofa\DbQueriesAlert\Middleware::class, ]; // .env DB_QUERIES_ALERT_ENABLED=true
贡献
欢迎所有贡献,PR 必须遵守 PSR-2。