Used in Application core, please do not touch
@param string $step
6228
public static function handleApplicationPlugins($step)
    {
        foreach (self::$pluginsOrder as $plugins) {
            foreach ($plugins as $pluginClass) {
                self::$plugins[$pluginClass]->$step();
            }
        }
    }
586287
public function setStep(float $step) : self
    {
        if ($step >= 1) {
            $this->setValidation('int');
        } else {
            $this->setValidation('float');
        }

        $this->getField()->addAttribute('step', (string) $step);

        return $this;
    }
25010
@Override
    public void process(Step step) {
        step.setName(getName());
        step.setStatus(Status.PASSED);
        step.setStart(System.currentTimeMillis());
        step.setTitle(getTitle());
    }
472849
public function decrement(string $key, int $step = 1): int {
		return $this->driver->decrby($key, $step);
	}
164956
protected function pushStepStack( $step )
    {
        $store = $this->getStore();
        $stack = $store['stack'];
        array_push( $stack, (string) $step );
        $store['stack'] = $stack;
        return $this;
    }
514885
public function discard_autosaved_step() {
        if (!$this->has_autosaved_step()) {
            return;
        }

        $autosaved = array_pop($this->steps);
        $this->autosavedstep = null;
        $this->observer->notify_step_deleted($autosaved, $this);
    }
1227347
public void addStep(DeploymentOperationStep step) {
    if(currentStep != null) {
      steps.add(steps.indexOf(currentStep)+1, step);
    } else {
      steps.add(step);
    }
  }
391901
protected function redirectToStep( $step )
    {
        $routeMatch = $this->getEvent()
                           ->getRouteMatch();

        return $this->redirect()
                    ->toRoute( $routeMatch->getMatchedRouteName(),
                               ArrayUtils::merge(
                                   $routeMatch->getParams(),
                                   array( 'step' => $step )
                               ) );
    }
1084808
private function setBar($steps = 14)
    {
        if($this->option('deleteUploads')) {
            $steps++;
        }

        $this->bar = $this->output->createProgressBar($steps);

        return $this;
    }
967917
public function run($step = 'add')
    {
        $this->setLogs($step, 'step');
        switch ($step) {
            // Step 1: Validate and add a contact to a queue for the next file for the client.
            case 'add':
                $this->getFieldValues();
                $this->fileEntitySelect(true);
                $this->fileEntityRefreshSettings();
                $this->addContactToQueue();
                break;

            // Step 3: Build the file (if a good time), performing a second validation on each contact.
            case 'build':
                if ($this->test) {
                    $this->getFieldValues();
                }
                $this->fileEntitySelect();
                $this->evaluateSchedule(true);
                $this->fileEntityRefreshSettings();
                $this->fileBuild();
                break;

            // Step 4: Perform file send operations, if any are configured.
            case 'send':
                $this->fileEntitySelect(false, File::STATUS_READY);
                $this->evaluateSchedule(true);
                $this->fileSend();
                break;
        }

        return $this;
    }
1100980
public function steps($steps)
    {
        if ( ! is_array($steps)) {
            $steps = [ $steps ];
        }

        $this->steps = $steps;

        return $this;
    }
29116
public function setStep(string $step)
    {
        $this->doSetStep($step);
        $this->getTag()->setAttribute('step', $step);

        return $this;
    }
38195
protected function update($step)
    {
        $userCollection = $this->matchUsers('user', $step);

        if (count($userCollection) > 1 && isset($step->dsl['references'])) {
            throw new \Exception("Can not execute User update because multiple users match, and a references section is specified in the dsl. References can be set when only 1 user matches");
        }

        if (count($userCollection) > 1 && isset($step->dsl['email'])) {
            throw new \Exception("Can not execute User update because multiple users match, and an email section is specified in the dsl.");
        }

        $userService = $this->repository->getUserService();

        foreach ($userCollection as $key => $user) {

            $userUpdateStruct = $userService->newUserUpdateStruct();

            if (isset($step->dsl['email'])) {
                $userUpdateStruct->email = $this->referenceResolver->resolveReference($step->dsl['email']);
            }
            if (isset($step->dsl['password'])) {
                $userUpdateStruct->password = (string)$this->referenceResolver->resolveReference($step->dsl['password']);
            }
            if (isset($step->dsl['enabled'])) {
                $userUpdateStruct->enabled = $this->referenceResolver->resolveReference($step->dsl['enabled']);
            }

            $user = $userService->updateUser($user, $userUpdateStruct);

            if (isset($step->dsl['groups'])) {
                $groups = $step->dsl['groups'];

                if (!is_array($groups)) {
                    $groups = array($groups);
                }

                $assignedGroups = $userService->loadUserGroupsOfUser($user);

                $targetGroupIds = [];
                // Assigning new groups to the user
                foreach ($groups as $groupToAssignId) {
                    $groupId = $this->referenceResolver->resolveReference($groupToAssignId);
                    $groupToAssign = $this->userGroupMatcher->matchOneByKey($groupId);
                    $targetGroupIds[] = $groupToAssign->id;

                    $present = false;
                    foreach ($assignedGroups as $assignedGroup) {
                        // Make sure we assign the user only to groups he isn't already assigned to
                        if ($assignedGroup->id == $groupToAssign->id) {
                            $present = true;
                            break;
                        }
                    }
                    if (!$present) {
                        $userService->assignUserToUserGroup($user, $groupToAssign);
                    }
                }

                // Unassigning groups that are not in the list in the migration
                foreach ($assignedGroups as $assignedGroup) {
                    if (!in_array($assignedGroup->id, $targetGroupIds)) {
                        $userService->unAssignUserFromUserGroup($user, $assignedGroup);
                    }
                }
            }

            $userCollection[$key] = $user;
        }

        $this->setReferences($userCollection, $step);

        return $userCollection;
    }
991432
public function add(Step $step)
    {
        $this->assertUniqueEventBinding($step->getTriggeringEvents());
        $this->assertUniqueStepName($step->getName());

        $this->steps[$step->getName()] = $step;

        $this->registerTriggeringEvents($step);
    }
89850
public function update(Tensor $step) : void
    {
        $this->w = $this->w()->subtract($step);
    }
676260
public function step($step = null)
    {
        if (isset($step)) {
            $this->step = $step;
            return $this;
        } else {
            return $this->step;
        }
    }
845158
public function replace($stepNameToReplace, Step $replacingStep)
    {
        $this->assertStepExists($stepNameToReplace);

        // remove event bindings for step being replaced
        $stepToReplace = $this->steps[$stepNameToReplace];
        foreach ($stepToReplace->getTriggeringEvents() as $eventName) {
            unset($this->eventBindings[$eventName]);
        }

        // insert after the step we want to replace
        $this->insert($stepNameToReplace, $replacingStep, true);

        // remove step
        unset($this->steps[$stepNameToReplace]);

        // reindex steps array
        $temporaryStepNames = array_keys($this->steps);
        $temporarySteps = array_values($this->steps);

        $this->steps = array_combine($temporaryStepNames, $temporarySteps);
    }