public function getCurrentStage(string $name): StageInterface
    {
        // compute the stageClass from Request parameter
        $stageClass = $this->getStageClassName($name);

        // loop each stage until finds the first that is necessary

        do {
            $useCurrentStage = false;
            /** @var StageInterface $currentStage */
            if (!isset($currentStage)) {
                $currentStage = $this->getStageInstance($stageClass);
            }
            $this->currentStageName = $currentStage->getName();
            try {
                $isNecessary = $currentStage->isNecessary();
            } catch (AbortStageException $e) {
                $this->warning = $e->getMessage();
                $isNecessary = true;
            }
            if ($isNecessary) {
                $useCurrentStage = true;
            } else {
                $currentStage = $this->getNextStage();
            }
        } while (false === $useCurrentStage);

        return $currentStage;
    }
public function getCurrentStage(string $name): StageInterface
    {
        // compute the stageClass from Request parameter
        $stageClass = $this->getStageClassName($name);

        // loop each stage until finds the first that is necessary

        do {
            $useCurrentStage = false;
            /** @var StageInterface $currentStage */
            if (!isset($currentStage)) {
                $currentStage = $this->getStageInstance($stageClass);
            }
            $this->currentStageName = $currentStage->getName();
            try {
                $isNecessary = $currentStage->isNecessary();
            } catch (AbortStageException $e) {
                $this->warning = $e->getMessage();
                $isNecessary = true;
            }
            if ($isNecessary) {
                $useCurrentStage = true;
            } else {
                $currentStage = $this->getNextStage();
            }
        } while (false === $useCurrentStage);

        return $currentStage;
    }
public function getCurrentStage ( string $ name ) : StageInterface { // compute the stageClass from Request parameter $ stageClass = $ this -> getStageClassName ( $ name ) ; // loop each stage until finds the first that is necessary do { $ useCurrentStage = false ; /** @var StageInterface $currentStage */ if ( ! isset ( $ currentStage ) ) { $ currentStage = $ this -> getStageInstance ( $ stageClass ) ; } $ this -> currentStageName = $ currentStage -> getName ( ) ; try { $ isNecessary = $ currentStage -> isNecessary ( ) ; } catch ( AbortStageException $ e ) { $ this -> warning = $ e -> getMessage ( ) ; $ isNecessary = true ; } if ( $ isNecessary ) { $ useCurrentStage = true ; } else { $ currentStage = $ this -> getNextStage ( ) ; } } while ( false === $ useCurrentStage ) ; return $ currentStage ; }
Get the stage that is the first necessary stage
Get the stage that is the first necessary stage