An event driven dispatch system for php

Installs: 3

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

Type:paravel-library

pkg:composer/patryknamyslak/patflow

v1.1 2026-02-10 20:58 UTC

This package is auto-updated.

Last update: 2026-02-10 20:59:48 UTC


README

Demo:

TestEvent:

namespace PatrykNamyslak\PatFlow\Demo;

use PatrykNamyslak\PatFlow\Blueprints\Event;

class TestEvent extends Event{
    // Add a custom property to capture extra data to then later use in the Listener::handle() method
    public function __construct(protected string $message){
        parent::__construct();
    }
}

TestListener:

namespace PatrykNamyslak\PatFlow\Demo;

use PatrykNamyslak\PatFlow\Blueprints\Event;
use PatrykNamyslak\PatFlow\Blueprints\Listener;

class TestListener extends Listener{
    public function handle(Event $event): void{
        echo "Event triggered! at: {$event->timestamp} and a message was left here it is: {$event->message}";
    }
}

TestServiceProvider:

namespace PatrykNamyslak\PatFlow\Demo;

use PatrykNamyslak\PatFlow\Blueprints\ServiceProvider;

class TestServiceProvider extends ServiceProvider{
    // Define your event => array of listeners that are triggered on event fire
    public array $listen = [
        TestEvent::class => [TestListener::class],
    ];
}

Usage:

use PatrykNamyslak\PatFlow\Demo\TestEvent;
use PatrykNamyslak\PatFlow\Demo\TestServiceProvider;

$dispatcher = new Dispatcher();

$serviceProvider = new TestServiceProvider(dispatcher: $dispatcher);
$serviceProvider->register();
$dispatcher->dispatch(new TestEvent(message: "Greetings My friend"));
OUTPUT: Event triggered! at: 1770753871.8842 and a message was left here it is: Greetings My friend