wpdiggerstudio/wpzylos-events

PSR-14 compliant event dispatcher for WPZylos framework

Fund package maintenance!
Paypal

Installs: 0

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/wpdiggerstudio/wpzylos-events

v1.0.0 2026-02-01 13:01 UTC

This package is auto-updated.

Last update: 2026-02-01 13:03:44 UTC


README

PHP Version License GitHub

PSR-14 compliant event dispatcher for WPZylos framework.

📖 Full Documentation | 🐛 Report Issues

✨ Features

  • PSR-14 Compliant — Standard event dispatcher interface
  • Event Classes — Type-safe event objects
  • Listeners — Single event handlers
  • Subscribers — Multi-event handlers
  • Stoppable Events — Control event propagation
  • Queued Events — Async event processing

📋 Requirements

Requirement Version
PHP ^8.0

🚀 Installation

composer require wpdiggerstudio/wpzylos-events

📖 Quick Start

use WPZylos\Framework\Events\EventDispatcher;

$dispatcher = new EventDispatcher();

// Register listener
$dispatcher->listen(UserCreated::class, function (UserCreated $event) {
    // Handle event
});

// Dispatch event
$dispatcher->dispatch(new UserCreated($user));

🏗️ Core Features

Event Classes

class UserCreated
{
    public function __construct(
        public readonly User $user
    ) {}
}

class OrderPlaced
{
    public function __construct(
        public readonly Order $order,
        public readonly User $customer
    ) {}
}

Listeners

// Closure listener
$dispatcher->listen(UserCreated::class, function (UserCreated $event) {
    mail($event->user->email, 'Welcome!', 'Thanks for signing up.');
});

// Class listener
$dispatcher->listen(UserCreated::class, [SendWelcomeEmail::class, 'handle']);

Subscribers

class UserEventSubscriber implements EventSubscriberInterface
{
    public static function getSubscribedEvents(): array
    {
        return [
            UserCreated::class => 'onUserCreated',
            UserDeleted::class => 'onUserDeleted',
        ];
    }

    public function onUserCreated(UserCreated $event): void
    {
        // Handle creation
    }

    public function onUserDeleted(UserDeleted $event): void
    {
        // Handle deletion
    }
}

$dispatcher->addSubscriber(new UserEventSubscriber());

Stoppable Events

class ValidatableEvent implements StoppableEventInterface
{
    private bool $propagationStopped = false;

    public function stopPropagation(): void
    {
        $this->propagationStopped = true;
    }

    public function isPropagationStopped(): bool
    {
        return $this->propagationStopped;
    }
}

📦 Related Packages

Package Description
wpzylos-core Application foundation
wpzylos-hooks WordPress hooks
wpzylos-scaffold Plugin template

📖 Documentation

For comprehensive documentation, tutorials, and API reference, visit wpzylos.com.

☕ Support the Project

If you find this package helpful, consider buying me a coffee! Your support helps maintain and improve the WPZylos ecosystem.

Donate with PayPal

📄 License

MIT License. See LICENSE for details.

🤝 Contributing

Contributions are welcome! Please see CONTRIBUTING.md for guidelines.

Made with ❤️ by WPDiggerStudio