darkwood/flow
Flow is a PHP 8.5+ package for building asynchronous pipelines with a functional style. Define steps with generators, pass typed data through each stage, and await execution. Includes examples and docs, with a focus on assembling code as “flows”.
<?php
use Flow\Flow\Flow;
use Flow\FlowFactory;
use Flow\Ip;
class D1 {
public function __construct(public int $n1) {}
}
class D2 {
public function __construct(public int $n2) {}
}
class D3 {
public function __construct(public int $n3) {}
}
class D4 {
public function __construct(public int $n4) {}
}
$flow = (new FlowFactory())->create(static function() {
yield fn (D1 $data1) => new D2($data1->n1 += 1);
yield fn (D2 $data2) => new D3($data2->n2 * 2);
yield function(D3 $data3) {
printf("my number %d\n", $ip->data->n3)); // display 'my number 10'
return new D4($data3->n3);
};
});
$ip = new Ip(new D1(4));
$flow($ip);
$flow->await();
How can I help you explore Laravel packages today?