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
Requires
- php: ^8.0
- psr/event-dispatcher: ^1.0
Requires (Dev)
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^9.6 || ^10.0
- squizlabs/php_codesniffer: ^3.7
README
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.
📄 License
MIT License. See LICENSE for details.
🤝 Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
Made with ❤️ by WPDiggerStudio