reference, $obligation->sequence, $obligation->hash_id) */ class UpdateStepsProcessor { private $canUpdateStep; private $updatesSteps; private $fetchesSteps; public function __construct(CanUpdateStep $canUpdateStep, UpdatesSteps $updatesSteps, FetchesSteps $fetchesSteps ) { $this->canUpdateStep = $canUpdateStep; $this->updatesSteps = $updatesSteps; $this->fetchesSteps = $fetchesSteps; } public function execute(string $currentStep){ // FIXME: Incorrect StepsObject instantiation - uses 9 parameters instead of correct 4-parameter pattern // Correct pattern: new StepsObject($appointee_id, $obligation->reference, $obligation->sequence, $obligation->hash_id) $orderStepsObject = new StepsObject(0,$currentStep, 0, 0, 1, 1, null, 0, null); $this->canUpdateStep->passes($orderStepsObject); $orderSteps = $this->fetchesSteps->execute(['reference'=>$currentStep]); $this->updatesSteps->execute($orderSteps, $orderStepsObject); } }