public function listWizards($includeDone = false)
    {
        if (empty($this->listCache)) {
            $availableUpgradeWizards = [];
            foreach ($this->wizardRegistry as $identifier => $className) {
                $updateObject = $this->factory->create($identifier);
                $shortIdentifier = $this->factory->getShortIdentifier($identifier);
                $availableUpgradeWizards[$shortIdentifier] = [
                    'className' => $className,
                    'title' => $updateObject->getTitle(),
                    'done' => false,
                ];
                $explanation = '';
                $wizardImplementsInterface = $updateObject instanceof UpgradeWizardInterface && !$updateObject instanceof AbstractUpdate;
                $markedAsDone = $this->registry->get('installUpdate', $className, false) || $this->registry->get('installUpdate', $identifier, false);
                if ($wizardImplementsInterface) {
                    $explanation = $updateObject->getDescription();
                    $wizardClaimsExecution = $updateObject->updateNecessary();
                } else {
                    $wizardClaimsExecution = $updateObject->checkForUpdate($explanation);
                }
                if ($markedAsDone || !$wizardClaimsExecution) {
                    $availableUpgradeWizards[$shortIdentifier]['done'] = true;
                }
                $availableUpgradeWizards[$shortIdentifier]['explanation'] = html_entity_decode(strip_tags($explanation));
            }
            $this->listCache = $availableUpgradeWizards;
        }

        return array_filter(
            $this->listCache,
            function ($info) use ($includeDone) {
                return $includeDone || !$info['done'];
            }
        );
    }
public function listWizards($includeDone = false)
    {
        if (empty($this->listCache)) {
            $availableUpgradeWizards = [];
            foreach ($this->wizardRegistry as $identifier => $className) {
                $updateObject = $this->factory->create($identifier);
                $shortIdentifier = $this->factory->getShortIdentifier($identifier);
                $availableUpgradeWizards[$shortIdentifier] = [
                    'className' => $className,
                    'title' => $updateObject->getTitle(),
                    'done' => false,
                ];
                $explanation = '';
                $wizardImplementsInterface = $updateObject instanceof UpgradeWizardInterface && !$updateObject instanceof AbstractUpdate;
                $markedAsDone = $this->registry->get('installUpdate', $className, false) || $this->registry->get('installUpdate', $identifier, false);
                if ($wizardImplementsInterface) {
                    $explanation = $updateObject->getDescription();
                    $wizardClaimsExecution = $updateObject->updateNecessary();
                } else {
                    $wizardClaimsExecution = $updateObject->checkForUpdate($explanation);
                }
                if ($markedAsDone || !$wizardClaimsExecution) {
                    $availableUpgradeWizards[$shortIdentifier]['done'] = true;
                }
                $availableUpgradeWizards[$shortIdentifier]['explanation'] = html_entity_decode(strip_tags($explanation));
            }
            $this->listCache = $availableUpgradeWizards;
        }

        return array_filter(
            $this->listCache,
            function ($info) use ($includeDone) {
                return $includeDone || !$info['done'];
            }
        );
    }
public function listWizards ( $ includeDone = false ) { if ( empty ( $ this -> listCache ) ) { $ availableUpgradeWizards = [ ] ; foreach ( $ this -> wizardRegistry as $ identifier => $ className ) { $ updateObject = $ this -> factory -> create ( $ identifier ) ; $ shortIdentifier = $ this -> factory -> getShortIdentifier ( $ identifier ) ; $ availableUpgradeWizards [ $ shortIdentifier ] = [ 'className' => $ className , 'title' => $ updateObject -> getTitle ( ) , 'done' => false , ] ; $ explanation = '' ; $ wizardImplementsInterface = $ updateObject instanceof UpgradeWizardInterface && ! $ updateObject instanceof AbstractUpdate ; $ markedAsDone = $ this -> registry -> get ( 'installUpdate' , $ className , false ) || $ this -> registry -> get ( 'installUpdate' , $ identifier , false ) ; if ( $ wizardImplementsInterface ) { $ explanation = $ updateObject -> getDescription ( ) ; $ wizardClaimsExecution = $ updateObject -> updateNecessary ( ) ; } else { $ wizardClaimsExecution = $ updateObject -> checkForUpdate ( $ explanation ) ; } if ( $ markedAsDone || ! $ wizardClaimsExecution ) { $ availableUpgradeWizards [ $ shortIdentifier ] [ 'done' ] = true ; } $ availableUpgradeWizards [ $ shortIdentifier ] [ 'explanation' ] = html_entity_decode ( strip_tags ( $ explanation ) ) ; } $ this -> listCache = $ availableUpgradeWizards ; } return array_filter ( $ this -> listCache , function ( $ info ) use ( $ includeDone ) { return $ includeDone || ! $ info [ 'done' ] ; } ) ; }
List available upgrade wizards

@param bool $includeDone
@return array
List available upgrade wizards