X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FConsole%2FAutomaticInstallation.php;h=37ba2dc1376c2fd539ff938d6644f03d087b25e2;hb=176165b83b1b224a73c01e48f4eb9f71cc8bfa27;hp=2978ed1ecfe7a01f5daf856d44c2177de9b8b808;hpb=c82127ffb7972e687d31b245237e21f3308097e2;p=friendica.git diff --git a/src/Console/AutomaticInstallation.php b/src/Console/AutomaticInstallation.php index 2978ed1ecf..37ba2dc137 100644 --- a/src/Console/AutomaticInstallation.php +++ b/src/Console/AutomaticInstallation.php @@ -1,19 +1,49 @@ . + * + */ namespace Friendica\Console; use Asika\SimpleConsole\Console; -use Friendica\BaseObject; -use Friendica\Core\Config; +use Friendica\App; +use Friendica\App\BaseURL; +use Friendica\Core\Config\IConfig; +use Friendica\Core\Config\Cache; use Friendica\Core\Installer; use Friendica\Core\Theme; +use Friendica\Database\Database; use Friendica\Util\BasePath; -use Friendica\Util\BaseURL; -use Friendica\Util\Config\ConfigFileLoader; +use Friendica\Util\ConfigFileLoader; use RuntimeException; class AutomaticInstallation extends Console { + /** @var App\Mode */ + private $appMode; + /** @var Cache */ + private $configCache; + /** @var IConfig */ + private $config; + /** @var Database */ + private $dba; + protected function getHelp() { return <<appMode = $appMode; + $this->configCache = $configCache; + $this->config = $config; + $this->dba = $dba; + } + protected function doExecute() { // Initialise the app $this->out("Initializing setup...\n"); - $a = BaseObject::getApp(); - $installer = new Installer(); - $configCache = $a->getConfigCache(); - $installer->setUpCache($configCache, BasePath::create($a->getBasePath(), $_SERVER)); + $configCache = $this->configCache; + $basePathConf = $configCache->get('system', 'basepath'); + $basepath = new BasePath($basePathConf); + $installer->setUpCache($configCache, $basepath->getPath()); $this->out(" Complete!\n\n"); @@ -99,16 +139,13 @@ HELP; $config_file = $this->getOption(['f', 'file']); if (!empty($config_file)) { - if ($config_file != 'config' . DIRECTORY_SEPARATOR . 'local.config.php') { - // Copy config file - $this->out("Copying config file...\n"); - if (!copy($a->getBasePath() . DIRECTORY_SEPARATOR . $config_file, $a->getBasePath() . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'local.config.php')) { - throw new RuntimeException("ERROR: Saving config file failed. Please copy '$config_file' to '" . $a->getBasePath() . "'" . DIRECTORY_SEPARATOR . "config" . DIRECTORY_SEPARATOR . "local.config.php' manually.\n"); - } + + if (!file_exists($config_file)) { + throw new RuntimeException("ERROR: Config file does not exist.\n"); } //reload the config cache - $loader = new ConfigFileLoader($a->getBasePath(), $a->getMode()); + $loader = new ConfigFileLoader($config_file); $loader->setupCache($configCache); } else { @@ -158,21 +195,21 @@ HELP; $this->out('The Friendica URL has to be set during CLI installation.'); return 1; } else { - $baseUrl = new BaseURL($a->getConfig(), []); + $baseUrl = new BaseURL($this->config, []); $baseUrl->saveByURL($url); } $installer->createConfig($configCache); } - $this->out(" Complete!\n\n"); + $this->out("Complete!\n\n"); // Check database connection $this->out("Checking database...\n"); $installer->resetChecks(); - if (!$installer->checkDB($configCache, $a->getProfiler())) { + if (!$installer->checkDB($this->dba)) { $errorMessage = $this->extractErrors($installer->getChecks()); throw new RuntimeException($errorMessage); } @@ -184,17 +221,25 @@ HELP; $installer->resetChecks(); - if (!$installer->installDatabase($a->getBasePath())) { + if (!$installer->installDatabase($basePathConf)) { $errorMessage = $this->extractErrors($installer->getChecks()); throw new RuntimeException($errorMessage); } + if (!empty($config_file) && $config_file != 'config' . DIRECTORY_SEPARATOR . 'local.config.php') { + // Copy config file + $this->out("Copying config file...\n"); + if (!copy($basePathConf . DIRECTORY_SEPARATOR . $config_file, $basePathConf . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'local.config.php')) { + throw new RuntimeException("ERROR: Saving config file failed. Please copy '$config_file' to '" . $basePathConf . "'" . DIRECTORY_SEPARATOR . "config" . DIRECTORY_SEPARATOR . "local.config.php' manually.\n"); + } + } + $this->out(" Complete!\n\n"); // Install theme $this->out("Installing theme\n"); - if (!empty(Config::get('system', 'theme'))) { - Theme::install(Config::get('system', 'theme')); + if (!empty($this->config->get('system', 'theme'))) { + Theme::install($this->config->get('system', 'theme')); $this->out(" Complete\n\n"); } else { $this->out(" Theme setting is empty. Please check the file 'config/local.config.php'\n\n"); @@ -206,18 +251,18 @@ HELP; } /** - * @param Installer $installer The Installer instance - * @param Config\Cache\ConfigCache $configCache The config cache + * @param Installer $installer The Installer instance + * @param Cache $configCache The config cache * * @return bool true if checks were successfully, otherwise false * @throws \Friendica\Network\HTTPException\InternalServerErrorException */ - private function runBasicChecks(Installer $installer, Config\Cache\ConfigCache $configCache) + private function runBasicChecks(Installer $installer, Cache $configCache) { $checked = true; $installer->resetChecks(); - if (!$installer->checkFunctions()) { + if (!$installer->checkFunctions()) { $checked = false; } if (!$installer->checkImagick()) { @@ -246,11 +291,12 @@ HELP; /** * @param array $results + * * @return string */ private function extractErrors($results) { - $errorMessage = ''; + $errorMessage = ''; $allChecksRequired = $this->getOption('a') !== null; foreach ($results as $result) {