EventDispatcher or Service Container. Laravel’s event system relies on closures, service provider bindings, and a simpler registration model (Event::listen()), making direct integration non-trivial.event_listener tags, so the package’s core functionality (fetching tagged listeners) would need a complete rewrite to inspect Laravel’s app['events']->getListeners() or service container bindings.EventDispatcher::getListeners(), Debugbar) that overlap with its functionality. The package’s priority-based filtering and private listener visibility are niche and may not justify integration.ListenerFetcher and ListenerFilter classes are tightly coupled to Symfony’s ContainerBuilder and event_listener tags, which don’t exist in Laravel. A 1:1 port would require:
ContainerBuilder with Laravel’s Container/ServiceProvider APIs.EventDispatcher::getListeners() or service container inspection.user.created vs. Symfony’s user.created_event).fetchListeners(), fetchListener()) assume Symfony’s DIC structure, leading to runtime errors if used directly in Laravel.dependency-injection:2.x) that are incompatible with Laravel’s stack and unsupported in modern PHP.EventDispatcher changes.EventDispatcher::getListeners()) or packages like Laravel Debugbar already provide similar functionality with lower risk.EventDispatcher::getListeners() already exposes listener metadata. Does this package offer priority filtering, private listener visibility, or visualization that Laravel lacks?EventDispatcher::getListeners() could replicate core functionality with zero external dependencies.Illuminate\Events\EventDispatcher provides native listener inspection via getListeners($eventName), making this package redundant for most use cases.event_listener tags, so the package’s core feature is inapplicable.ContainerBuilder instance.EventDispatcher::getListeners() or Laravel Debugbar for listener inspection.$listeners = app('events')->getListeners('user.created');
dd($listeners); // Dump all listeners for the event
EventDispatcher:
class LaravelListenerFetcher {
public function __construct(private EventDispatcher $dispatcher) {}
public function fetchListeners(string $eventName): array {
return $this->dispatcher->getListeners($eventName);
}
public function fetchListener(string $eventName, string $listener): ?callable {
$listeners = $this->dispatcher->getListeners($eventName);
return collect($listeners)->first(fn ($listener) => $listener === $listener);
}
}
// In a Symfony 2 module
$symfonyListeners = (new ListenerFetcher($symfonyContainer))->fetchListeners();
// Expose via Laravel's service container
app()->singleton('symfony.listeners', fn() => $symfonyListeners);
symfony/dependency-injection:2.x, which is not used in Laravel and would cause autoloading conflicts.EventDispatcher doesn’t expose priority values like Symfony’s event_listener tags.EventDispatcher (e.g., a debug:listeners Artisan command).array → array<string, mixed>).call_user_func_array with modern alternatives).EventDispatcher API.EventDispatcher).EventDispatcher changes.How can I help you explore Laravel packages today?