コード例 #1
0
ファイル: UpdateCommand.php プロジェクト: GerDner/luck-docker
 /**
  * {@inheritdoc}
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $this->container = $this->getApplication()->getContainer();
     $this->container->setParameter('update.config', []);
     $this->IOHelper = $ioService = new IOHelper($input, $output, $this->getHelper('question'));
     if (!is_dir(UPDATE_FILES_PATH) && !is_dir(UPDATE_ASSET_PATH)) {
         $ioService->writeln("No update files found.");
         return 1;
     }
     $version = $this->container->get('shopware.version');
     if ($ioService->isInteractive()) {
         $ioService->cls();
         $ioService->printBanner();
         $ioService->writeln("<info>Welcome to the Shopware updater </info>");
         $ioService->writeln(sprintf("Shopware Version %s", $version));
         $ioService->writeln("");
         $ioService->ask('Press return to start the update.');
         $ioService->cls();
     }
     $this->unpackFiles();
     $this->migrateDatabase();
     $this->importSnippets();
     $this->cleanup();
     $this->synchronizeThemes();
     $this->writeLockFile();
     $ioService->cls();
     $ioService->writeln("");
     $ioService->writeln("");
     $ioService->writeln("<info>The update has been finished succesfuly.</info>");
     $ioService->writeln("Your shop is currently in maintenance mode.");
     $ioService->writeln(sprintf("Please delete <question>%s</question> to finish the update.", UPDATE_ASSET_PATH));
     $ioService->writeln("");
 }
コード例 #2
0
 /**
  * {@inheritdoc}
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $this->IOHelper = $ioService = new IOHelper($input, $output, $this->getHelper('question'));
     /** @var $container Container */
     $container = $this->container = $this->getApplication()->getContainer();
     if (!$ioService->isInteractive()) {
         $ioService->writeln("<error>Non interactive installation is not supported.</error>");
         return 1;
     }
     $this->printStartMessage($ioService);
     if ($this->isConfigured()) {
         $connectionInfo = $this->createConnectionInfoFromConfig(SW_PATH . '/config.php');
         $connectionInfo = $this->interactDatabaseConfig($ioService, $connectionInfo);
     } else {
         $connectionInfo = $this->interactDatabaseConfig($ioService);
     }
     $conn = $this->initDatabaseConnection($connectionInfo, $container);
     $databaseService = new DatabaseService($conn);
     $skipImport = $databaseService->containsShopwareSchema() && $this->shouldSkipImport();
     if (!$skipImport) {
         $this->importDatabase();
         $this->importSnippets();
     }
     $locales = ['de_DE', 'en_GB'];
     $shop = $this->askForShopInformation($locales);
     $currencies = ['EUR', 'USD', 'GBP'];
     $currency = $this->askForCurrencyInformation($currencies);
     $shop->currency = $currency;
     if (!$this->webserverCheck($ioService, $container, $shop)) {
         $ioService->writeln("Could not verify");
         if (!$this->IOHelper->askConfirmation("Continue?")) {
             return 1;
         }
     }
     $adminUser = $this->askAdminInformation($locales);
     $shopService = new ShopService($conn);
     $shopService->updateShop($shop);
     $shopService->updateConfig($shop);
     $currencyService = new CurrencyService($conn);
     $currencyService->updateCurrency($shop);
     $currencyService = new LocaleSettingsService($conn, $container);
     $currencyService->updateLocaleSettings($shop->locale);
     $adminService = new AdminService($conn);
     $adminService->createAdmin($adminUser);
     $adminService->addWidgets($adminUser);
     $this->activateResponsiveTheme();
     $this->IOHelper->cls();
     $this->IOHelper->writeln("<info>=== License Information ===</info>");
     /** @var $licenseService LicenseUnpackService */
     $licenseService = $container->offsetGet('license.service');
     /** @var $licenseInstaller LicenseInstaller */
     $licenseInstaller = $container->offsetGet('license.installer');
     $this->askShopwareEdition($shop, $licenseService, $licenseInstaller);
     /** @var \Shopware\Recovery\Common\SystemLocker $systemLocker */
     $systemLocker = $this->container->offsetGet('system.locker');
     $systemLocker();
     $ioService->writeln("<info>Shop successfully installed.</info>");
 }