# Events & Listeners

**Package:** Laravel Modules | **Version:** 3 | **URL:** https://mozex.dev/docs/laravel-modules/v3/features/events-listeners

---

## Overview

Enables Laravel's event discovery for modules with a module-aware class resolver. Listeners are automatically found and attached to events — no manual mappings required.

## How it works

- Event discovery is enabled whenever the Listeners feature is active.
- Directories searched come from the Listeners config (default: `*/Listeners`).
- For files under the modules root, the class name is computed from the file path relative to the project base (e.g., `Modules/Blog/Listeners/NotifyFollowers.php` → `Modules\Blog\Listeners\NotifyFollowers`).
- For non-module files, Laravel's default `DiscoverEvents` resolver is used.

## Default configuration

```php
'listeners' => [
    'active' => true,
    'patterns' => [
        '*/Listeners',
    ],
],
```

## Directory layout

```
Modules/Blog/
├── Events/
│   └── PostPublished.php
└── Listeners/
    └── NotifyFollowers.php

Modules/Shop/
├── Events/
│   └── OrderPlaced.php
└── Listeners/
    ├── SendReceipt.php
    └── Analytics/
        └── TrackPurchase.php
```

## Usage

Place listener classes under each module's `Listeners` directory. Laravel discovers and attaches them at boot. Listeners can handle events from any module or the core app.

```php
Event::assertListening(
    Modules\Blog\Events\PostPublished::class,
    Modules\Blog\Listeners\NotifyFollowers::class
);
```

## Configuration

- Set `'listeners.active' => false` to disable event/listener discovery entirely.
- Edit `'listeners.patterns'` to change discovery directories.

## Troubleshooting

- **Listener not attached**: ensure the file is under a configured `Listeners` path and the feature is active.
- **Namespace mismatch**: the resolved namespace must match the file path and class name.

---

## Table of Contents

- [Introduction](https://mozex.dev/docs/laravel-modules/v3)
- [Support Us](https://mozex.dev/docs/laravel-modules/v3/support-us)
- [Requirements](https://mozex.dev/docs/laravel-modules/v3/requirements)
- [Changelog](https://mozex.dev/docs/laravel-modules/v3/changelog)
- [Contributing](https://mozex.dev/docs/laravel-modules/v3/contributing)
- [Questions & Issues](https://mozex.dev/docs/laravel-modules/v3/questions-and-issues)
- [About Mozex](https://mozex.dev/docs/laravel-modules/v3/about)

### Features

- [Blade Components](https://mozex.dev/docs/laravel-modules/v3/features/blade-components)
- [Views](https://mozex.dev/docs/laravel-modules/v3/features/views)
- [Routes](https://mozex.dev/docs/laravel-modules/v3/features/routes)
- [Configs](https://mozex.dev/docs/laravel-modules/v3/features/configs)
- [Migrations](https://mozex.dev/docs/laravel-modules/v3/features/migrations)
- [Seeders](https://mozex.dev/docs/laravel-modules/v3/features/seeders)
- [Commands](https://mozex.dev/docs/laravel-modules/v3/features/commands)
- [Helpers](https://mozex.dev/docs/laravel-modules/v3/features/helpers)
- [Models & Factories](https://mozex.dev/docs/laravel-modules/v3/features/models-factories)
- [Policies](https://mozex.dev/docs/laravel-modules/v3/features/policies)
- [Events & Listeners](https://mozex.dev/docs/laravel-modules/v3/features/events-listeners)
- [Service Providers](https://mozex.dev/docs/laravel-modules/v3/features/service-providers)
- [Translations](https://mozex.dev/docs/laravel-modules/v3/features/translations)
- [Caching](https://mozex.dev/docs/laravel-modules/v3/features/caching)
- [Listing Modules](https://mozex.dev/docs/laravel-modules/v3/features/listing)
- [Livewire Components](https://mozex.dev/docs/laravel-modules/v3/features/livewire-components)
- [Filament](https://mozex.dev/docs/laravel-modules/v3/features/filament)
- [Nova Resources](https://mozex.dev/docs/laravel-modules/v3/features/nova-resources)

### Integrations

- [PHPStan](https://mozex.dev/docs/laravel-modules/v3/integrations/phpstan)
- [PHPUnit](https://mozex.dev/docs/laravel-modules/v3/integrations/phpunit)
- [Pest](https://mozex.dev/docs/laravel-modules/v3/integrations/pest)