Middleware
Control and customize agent execution at every step
What is a Middleware

vendor/bin/neuron make:middleware CustomMiddleware.\vendor\bin\neuron make:middleware CustomMiddleware<?php
namespace App\Neuron\Middleware;
class CustomMiddleware implements WorkflowMiddleware
{
/**
* Execute before the node runs.
*/
public function before(NodeInterface $node, Event $event, WorkflowState $state): void
{
// ...
}
/**
* Execute after the node runs.
*/
public function after(NodeInterface $node, Event $result, WorkflowState $state): void
{
// ...
}
}class MyWorkflow extends Workflow
{
/**
* Define the nodes middleware.
*/
protected function middleware(): array
{
return [
NodeOne::class => new CustomMiddleware(),
];
}
}class MyWorkflow extends Workflow
{
/**
* Define the nodes middleware.
*/
protected function middleware(): array
{
return [
NodeOne::class => [
new CustomMiddleware(),
new AnotherMiddleware(),
]
];
}
}class MyWorkflow extends Workflow
{
/**
* Define the global middleware.
*/
protected function globalMiddleware(): array
{
return [
new CustomMiddleware(),
];
}
}