📡 You're offline — showing cached content
New version available!
Quick Access
Tutorials Zend Framework / Laminas Event Manager Laminas

Event Manager Laminas

5 min read
Emit and listen to application events with the EventManager for decoupled cross-module communication.

Event Manager

use LaminasEventManagerEventManager;
use LaminasEventManagerEvent;

$events = new EventManager();

// Attach listener
$events->attach("user.registered", function(Event $e) {
    $user = $e->getParam("user");
    sendWelcomeEmail($user->email);
}, 100);  // priority

$events->attach("user.registered", function(Event $e) {
    $user = $e->getParam("user");
    createProfile($user->id);
}, 50);

// Trigger event
$events->trigger("user.registered", $this, ["user" => $user]);

// Wildcard listener
$events->attach("*", function(Event $e) {
    error_log("Event fired: " . $e->getName());
});

// SharedEventManager (cross-module events)
use LaminasEventManagerSharedEventManager;
$sharedEvents = new SharedEventManager();
$sharedEvents->attach(PostController::class, "save.post", function(Event $e) {
    clearCache("posts");
});