unknownStepRule = $unknownStepRule; $this->validStepArgsRule = $validStepArgsRule; $this->validStepOrderRule = $validStepOrderRule; $this->validStepValidationRule = $validStepValidationRule; $this->workflowWalker = $workflowWalker; } public function validate(Workflow $workflow): void { $this->workflowWalker->walk($workflow, [ new NoUnreachableStepsRule(), new ConsistentStepMapRule(), new NoDuplicateEdgesRule(), new TriggersUnderRootRule(), new NoCycleRule(), new NoJoinRule(), new NoSplitRule(), $this->unknownStepRule, new ValidStepRule([ $this->validStepArgsRule, $this->validStepOrderRule, $this->validStepValidationRule, ]), ]); } }