private function runInstaller(InstallationRequest $request)
{
$delegateOptions = ['dbHost', 'dbPort', 'dbSocket', 'dbUser', 'dbPassword', 'dbName', 'shopLocale', 'shopHost', 'shopPath', 'shopName', 'shopEmail', 'shopCurrency', 'adminUsername', 'adminPassword', 'adminEmail', 'adminLocale', 'adminName'];
$arguments = [];
foreach ($request->all() as $key => $value) {
if (!in_array($key, $delegateOptions) || strlen($value) === 0) {
continue;
}
$key = strtolower(preg_replace("/[A-Z]/", "-\$0", $key));
$arguments[] = sprintf('--%s="%s"', $key, $value);
}
if ($request->getNoSkipImport()) {
$arguments[] = '--no-skip-import';
}
if ($request->getSkipAdminCreation()) {
$arguments[] = '--skip-admin-creation';
}
$arguments = join(" ", $arguments);
$this->processExecutor->execute("php {$request->getAbsoluteInstallDir()}/recovery/install/index.php {$arguments}");
}