adobrovolsky97 / illuminar
Laravel 框架的调试工具
Requires
- php: >=7.4
- ext-json: *
- guzzlehttp/guzzle: ^7.0
- laravel/framework: ^8.37|^9.0|^10.0|^11.0
- symfony/var-dumper: ^5.4|^6.0|^7.0
Requires (Dev)
- orchestra/testbench: ^8.21
- phpunit/phpunit: ^9.5|^10.0
README
Illuminar 是一个 Laravel 扩展包,提供了一套监视器来跟踪应用程序中的各种活动。它旨在帮助开发者更有效地监控和调试他们的应用程序。

特性
安装
您可以通过 composer 安装此包
composer require adobrovolsky97/illuminar
如果您不使用自动发现,请将 ServiceProvider 添加到 config/app.php 文件中的 providers 数组
Adobrovolsky97\Illuminar\ServiceProvider::class,
配置
您可以通过发布其配置文件来配置 Illuminar
php artisan vendor:publish --provider="Adobrovolsky97\Illuminar\ServiceProvider"
这将发布必要的 assets
到 public/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 许可证。