adobrovolsky97/illuminar

Laravel 框架的调试工具

v1.3.3 2024-09-02 12:38 UTC

README

Illuminar 是一个 Laravel 扩展包,提供了一套监视器来跟踪应用程序中的各种活动。它旨在帮助开发者更有效地监控和调试他们的应用程序。

299806977-260b3bd6-db1d-469c-968f-2c68dd2a82af

特性

安装

您可以通过 composer 安装此包

composer require adobrovolsky97/illuminar

如果您不使用自动发现,请将 ServiceProvider 添加到 config/app.php 文件中的 providers 数组

Adobrovolsky97\Illuminar\ServiceProvider::class,

配置

您可以通过发布其配置文件来配置 Illuminar

php artisan vendor:publish --provider="Adobrovolsky97\Illuminar\ServiceProvider"

这将发布必要的 assetspublic/vendor/illuminar 和将 illuminar.php 配置文件发布到您的 config 目录。在此文件中,您可以选择启用或禁用 Illuminar 并配置其监视器。

使用方法

启用 Illuminar

Illuminar 在您的 .env 文件中 ILLUMINAR_ENABLED=true 时启用。

调试数据可以在 APP_URL/illuminar 路由中查看。

转储

Illuminar 提供了一个 illuminar()->dump(...$args) 函数,可以用于将变量转储到 illuminar 屏幕。它类似于 dd 辅助函数,但它不会终止脚本执行。

有一个 blade 指令 @illuminar(...$args),可以从 blade 模板中将变量转储到 illuminar 屏幕。

可以添加自定义标签和颜色到转储,这样在转储列表中更容易找到。

illuminar()->dump($user, $anotherUser)->tag('users')->red(); // This will add a dump with a red border and a "users" tag
illuminar()->dump('Hello World');
illuminar()->dump(['foo' => 'bar'])->tag('array')->orange();
illuminar()
->dump(function () {
    return 'Hello World';
})
->tag('closure')
->green();
illuminar()->dump('Some data')->die(); // This one will terminate the script execution

数据库查询 & 慢查询跟踪

Illuminar 可以跟踪所有数据库查询和慢查询。它将显示查询、绑定、执行时间和查询调用者。

illuminar()->trackQueries(); // Enables DB queries tracking
User::all(); // This query will be tracked
illuminar()->stopTrackingQueries(); // Disables DB queries tracking

User::all(); // This query will not be tracked

illuminar()->trackSlowQueries(); // Enables slow queries tracking
User::all(); // This query will be tracked only if its execution time is more than x ms (execution time taken from the config)
illuminar()->stopTrackingSlowQueries(); // Disables slow queries tracking

User::query()
    ->where('name', 'John Doe')
    ->illuminar() // Allows to dump query while building it
    ->where('is_active', true)
    ->illuminar() // Will contain additional where clause
    ->get();

模型事件跟踪

Illuminar 可以跟踪所有模型事件。它将显示事件名称、模型事件调用者和属性更改。

默认情况下,它跟踪:'restored'、'updated'、'created'、'deleted'。您可以在配置文件中更新它。

illuminar()->trackModelEvents(); // Enables model events tracking

$user = User::first();
$user->update(['name' => 'John Doe']); // This event will be tracked
$user->delete();

illuminar()->stopTrackingModelEvents(); // Disables model events tracking

User::create(['name' => 'John Doe']); // This event will not be tracked

作业跟踪

Illuminar 可以跟踪所有作业。它将显示作业名称、作业调用者、作业状态和作业有效负载。

illuminar()->trackJobs(); // Enables jobs tracking
Job::dispatch();
illuminar()->stopTrackingJobs(); // Disables jobs tracking

Job::dispatch(); // This job will not be tracked

事件跟踪

Illuminar 可以跟踪所有事件。它将显示事件名称、事件调用者和事件有效负载。

illuminar()->trackEvents(); // Enables events tracking
event(new UserRegistered($user)); // This event will be tracked
illuminar()->stopTrackingEvents(); // Disables events tracking

event(new UserRegistered($user)); // This event will not be tracked

缓存跟踪

Illuminar 可以跟踪所有缓存操作。它将显示缓存操作名称、缓存操作调用者和缓存操作有效负载。

illuminar()->trackCaches(); // Enables cache tracking
Cache::put('key', 'value', 60); // This cache operation will be tracked
illuminar()->stopTrackingCaches(); // Disables cache tracking

Cache::put('key', 'value', 60); // This cache operation will not be tracked

发送邮件跟踪 & 可预览的邮件

Illuminar 可以跟踪所有发送的邮件。它将显示邮件主题、邮件接收者、邮件发送者和邮件有效负载,还可能查看在发送后或未发送的邮件内容。

illuminar()->trackMails(); // Enables mail tracking
Mail::to('recipient@illuminar.com')->send(new WelcomeMail()); // This mail will be tracked
illuminar()->stopTrackingMails(); // Disables mail tracking

Mail::to('recipient@illuminar.com')->send(new WelcomeMail()); // This mail will not be tracked

illuminar()->mailable(new WelcomeMail()); // Displays mailable preview

HTTP 请求跟踪

Illuminar 可以跟踪所有 HTTP 请求。它将显示请求方法、请求 URL、请求头、请求有效负载和请求调用者。

illuminar()->trackHttpRequests(); // Enables request tracking
Http::get('https://illuminar.com'); // This request will be tracked
illuminar()->stopTrackingHttpRequests(); // Disables request tracking

Http::get('https://illuminar.com'); // This request will not be tracked

环境变量

Illuminar 可以显示所有环境变量。

illuminar()->showEnv(); // Enables environment variables display

异常跟踪

Illuminar 可以跟踪所有异常。它将显示异常数据。

illuminar()->trackExceptions(); // Enables exceptions tracking
throw new Exception('Something went wrong'); // This exception will be tracked
illuminar()->stopTrackingExceptions(); // Disables exceptions tracking

throw new Exception('Something went wrong'); // This exception will not be tracked

Illuminar 将数据存储到 storage/illuminar 目录,并且每次请求都会重新写入数据。

它可以用于调试应用程序,不仅限于本地,也适用于开发和生产环境,因为它不会存储大量数据,所以数据库不会被过载,并且可以通过.env变量轻松禁用。

许可证

Illuminar 包是开源软件,遵循 MIT 许可证