private function setupExtensions(array $packages, $verbose = false)
    {
        $extensionSetupResultRenderer = new ExtensionSetupResultRenderer($this->signalSlotDispatcher);

        $extensionSetup = new ExtensionSetup(
            new ExtensionFactory($this->packageManager),
            $this->getExtensionInstaller()
        );

        $extensionSetup->setupExtensions($packages);
        $extensionKeysAsString = implode('", "', array_map(function (PackageInterface $package) {
            return $package->getPackageKey();
        }, $packages));
        if (count($packages) === 1) {
            $this->outputLine('<info>Extension "%s" is now set up.</info>', [$extensionKeysAsString]);
        } else {
            $this->outputLine('<info>Extensions "%s" are now set up.</info>', [$extensionKeysAsString]);
        }

        if ($verbose) {
            $this->outputLine();
            $extensionSetupResultRenderer->renderSchemaResult($this->output);
            $extensionSetupResultRenderer->renderExtensionDataImportResult($this->output);
            $extensionSetupResultRenderer->renderExtensionFileImportResult($this->output);
            $extensionSetupResultRenderer->renderImportedStaticDataResult($this->output);
        }
    }
private function setupExtensions(array $packages, $verbose = false)
    {
        $extensionSetupResultRenderer = new ExtensionSetupResultRenderer($this->signalSlotDispatcher);

        $extensionSetup = new ExtensionSetup(
            new ExtensionFactory($this->packageManager),
            $this->getExtensionInstaller()
        );

        $extensionSetup->setupExtensions($packages);
        $extensionKeysAsString = implode('", "', array_map(function (PackageInterface $package) {
            return $package->getPackageKey();
        }, $packages));
        if (count($packages) === 1) {
            $this->outputLine('<info>Extension "%s" is now set up.</info>', [$extensionKeysAsString]);
        } else {
            $this->outputLine('<info>Extensions "%s" are now set up.</info>', [$extensionKeysAsString]);
        }

        if ($verbose) {
            $this->outputLine();
            $extensionSetupResultRenderer->renderSchemaResult($this->output);
            $extensionSetupResultRenderer->renderExtensionDataImportResult($this->output);
            $extensionSetupResultRenderer->renderExtensionFileImportResult($this->output);
            $extensionSetupResultRenderer->renderImportedStaticDataResult($this->output);
        }
    }
private function setupExtensions ( array $ packages , $ verbose = false ) { $ extensionSetupResultRenderer = new ExtensionSetupResultRenderer ( $ this -> signalSlotDispatcher ) ; $ extensionSetup = new ExtensionSetup ( new ExtensionFactory ( $ this -> packageManager ) , $ this -> getExtensionInstaller ( ) ) ; $ extensionSetup -> setupExtensions ( $ packages ) ; $ extensionKeysAsString = implode ( '", "' , array_map ( function ( PackageInterface $ package ) { return $ package -> getPackageKey ( ) ; } , $ packages ) ) ; if ( count ( $ packages ) === 1 ) { $ this -> outputLine ( '<info>Extension "%s" is now set up.</info>' , [ $ extensionKeysAsString ] ) ; } else { $ this -> outputLine ( '<info>Extensions "%s" are now set up.</info>' , [ $ extensionKeysAsString ] ) ; } if ( $ verbose ) { $ this -> outputLine ( ) ; $ extensionSetupResultRenderer -> renderSchemaResult ( $ this -> output ) ; $ extensionSetupResultRenderer -> renderExtensionDataImportResult ( $ this -> output ) ; $ extensionSetupResultRenderer -> renderExtensionFileImportResult ( $ this -> output ) ; $ extensionSetupResultRenderer -> renderImportedStaticDataResult ( $ this -> output ) ; } }
Performs all necessary operations to integrate an extension into the system.
To do so, we avoid buggy TYPO3 API and use our own instead.

@param PackageInterface[] $packages
@param bool $verbose Whether or not to output results
Performs all necessary operations to integrate an extension into the system . To do so we avoid buggy TYPO3 API and use our own instead .