管理状态
了解如何在工作流中传递数据
最后更新于
namespace App\Neuron;
use NeuronAI\Workflow\Node;
use NeuronAI\Workflow\StartEvent;
use NeuronAI\Workflow\StopEvent;
use NeuronAI\Workflow\WorkflowState;
class InitialNode extends Node
{
public function __invoke(StartEvent $event, WorkflowState $state): StopEvent
{
$state->set('message', 'Hello World!');
return new StopEvent();
}
}use App\Models\User;
use NeuronAI\Workflow\WorkflowState;
class CustomState extends WorkflowState
{
protected User $user;
public function setUser(User $user): CustomState
{
$this->user = $user;
return $this;
}
public function getUser(): User
{
return $this->user;
}
}class ExampleNode extends Node
{
public function __invoke(StartEvent $event, CustomState $state): StopEvent
{
// 在你的节点中使用状态属性
if ($state->getUser()->isAdmin()) {
//...
}
return new StopEvent();
}
}$state = new CustomState();
$state->setUser($user);
$workflow = MyWorkflow::make(state: $state);
$finalState = $workflow->init()->run();
echo $finalState->getUser()->email;