jonaspardon / laravel-event-visualizer
Laravel package to visualize events with their handlers, including jobs to chain them together
Installs: 44 835
Dependents: 0
Suggesters: 0
Security: 0
Stars: 21
Watchers: 4
Forks: 5
Open Issues: 3
Requires
- php: ^8.1
- illuminate/contracts: ^9.0|^10.0|^11.0
- jonaspardon/mermaid-php: ^1.0.1
- nikic/php-parser: ^4.13
- spatie/laravel-package-tools: ^1.9.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.8
- larastan/larastan: ^2.0
- nunomaduro/collision: ^6.0
- orchestra/testbench: ^7.0
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.1
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
- spatie/laravel-ray: ^1.26
This package is auto-updated.
Last update: 2025-03-27 01:01:38 UTC
README
Laravel package to visualize events with their handlers, including jobs to chain them together.
Installation
You will need PHP 8.1 or higher.
Install the package via composer:
composer require jonaspardon/laravel-event-visualizer --dev
Publish the config file with:
php artisan vendor:publish --tag="event-visualizer-config"
Publish the views with:
php artisan vendor:publish --tag="event-visualizer-views"
Usage
Visit your-app.test/event-visualizer
on a non-production environment.
How does it work?
The starting point is your registered app events and their listeners/subscribers as defined in your EventServiceProvider
.
For each of those listeners/subscribers, the package will try to find the dispatched events and jobs by parsing the code and traversing through the abstract syntax tree. For every event/job found, the same AST traversal will be done recursively until it reaches the end.
Supported
Syntax | Supported? |
---|---|
\Event facade static call |
✅ |
\Bus facade static call |
✅ |
\Illuminate\Support\Facades\Event facade static call |
✅ |
\Illuminate\Support\Facades\Bus facade static call |
✅ |
\Illuminate\Contracts\Events\Dispatcher injected variable call |
✅ |
\Illuminate\Contracts\Bus\Dispatcher injected variable call |
✅ |
event(...) helper |
✅ |
dispatch(...) helper |
✅ |
Bus chains | ❌ |
For dependency injection, both constructor and method injection are supported.
Inline instantiation of classes is supported.
Passing variables (Event::dispatch($event)
as opposed to Event::dispatch(new EventName())
) is supported, but there might be some edge cases where it fails. If you encounter these, please open an issue and provide a code sample.
Testing
composer test
Contributing
Contributions are welcome.
When sending in a PR, please make sure to add/modify tests for the code you touch.
License
The MIT License (MIT). Please see License File for more information.