currentStep(); $maxStep = $install->maxStep(); if (!$install->canAccessStep($currentStep)) { $install->gotoStep(1); } $error = $copy = ''; //step 1 if ($currentStep == 1) { $requirements = $install->listRequirementTableRows(); $pass = $requirements['pass']; if ($isPost) { $install->nextStep(); } } if ($currentStep == 2) { $envExampleFile = "$rootpath.env.example"; $envExampleData = readEnvFile($envExampleFile); $envFormControls = $install->listEnvFormControls(); $newData = array_column($envFormControls, 'value', 'name'); while ($isPost) { try { $install->createEnvFile($_POST); $install->nextStep(); } catch (\Exception $exception) { $error = $exception->getMessage(); break; } break; } $tableRows = [ [ 'label' => '.env.example', 'required' => 'exists && readable', 'current' => $envExampleFile, 'result' => $install->yesOrNo(file_exists($envExampleFile) && is_readable($envExampleFile)), ], ]; $fails = array_filter($tableRows, function ($value) {return $value['result'] == 'NO';}); $pass = empty($fails); } if ($currentStep == 3) { $pass = true; $shouldCreateTable = $install->listShouldCreateTable(); while ($isPost) { try { $install->createTable($shouldCreateTable); $install->nextStep(); } catch (\Exception $exception) { $error = $exception->getMessage(); break; } break; } } //if ($currentStep == 4) { // $pass = true; // while (true) { // $shouldAlterTable = listShouldAlterTable(); // if ($isPost) { // if (!empty($shouldAlterTable)) { // try { // sql_query('SET sql_mode=(SELECT REPLACE(@@sql_mode,"NO_ZERO_DATE", ""));'); // foreach ($shouldAlterTable as $table => $fields) { // $sqlAlter = "alter table $table"; // $sqlUpdate = "update $table"; // $updateWhere = []; // foreach ($fields as $field) { // $sqlAlter .= " modify $field datetime default null,"; // $sqlUpdate .= " set $field = null,"; // $updateWhere[] = "$field = '0000-00-00 00:00:00'"; // } // $sqlAlter = rtrim($sqlAlter, ','); // $sqlUpdate = rtrim($sqlUpdate, ',') . " where " . implode(' or ', $updateWhere); // sql_query($sqlUpdate); // sql_query($sqlAlter); // } // } catch (\Exception $e) { // $error = $e->getMessage(); // break; // } // } // goStep($currentStep + 1); // } // break; // } //} if ($currentStep == 4) { $settingTableRows = $install->listSettingTableRows(); $settings = $settingTableRows['settings']; $symbolicLinks = $settingTableRows['symbolic_links']; $tableRows = $settingTableRows['table_rows']; $pass = $settingTableRows['pass']; while ($isPost) { try { $install->createSymbolicLinks($symbolicLinks); $install->saveSettings($settings); $install->importInitialData(); $install->nextStep(); } catch (\Exception $e) { $error = $e->getMessage(); break; } break; } } if ($currentStep == 5) { if ($isPost) { try { $install->createAdministrator($_POST['username'], $_POST['email'], $_POST['password'], $_POST['confirm_password']); $install->nextStep(); } catch (\Exception $exception) { $error = $exception->getMessage(); } } $pass = true; $userFormControls = [ ['label' => '用户名', 'name' => 'username', 'value' => $_POST['username'] ?? ''], ['label' => '邮箱', 'name' => 'email', 'value' => $_POST['email'] ?? ''], ['label' => '密码', 'name' => 'password', 'value' => $_POST['password'] ?? ''], ['label' => '确认密码', 'name' => 'confirm_password', 'value' => $_POST['confirm_password'] ?? ''], ]; } ?> Install NexusPHP | step <?php echo $currentStep?>
renderSteps()?>
'; $header = ['项目', '要求', '当前', '结果']; if ($currentStep == 1) { echo $install->renderTable($header, $requirements['table_rows']); } elseif ($currentStep == 2) { echo $install->renderTable($header, $tableRows); echo '
若 Redis 不启用,相关项目留空
'; echo $install->renderForm($envFormControls); } elseif ($currentStep == 3) { echo '

需要新建以下数据表

'; if (empty($shouldCreateTable)) { echo '
恭喜,需要的表均已创建!
'; } else { echo sprintf('
%s
', implode(', ', array_keys($shouldCreateTable))); } } elseif ($currentStep == 4) { echo $install->renderTable($header, $tableRows); echo '
'; echo sprintf('这一步会把 %s 的数据合并到 %s, 然后插入数据库中。', $tableRows[1]['label'], $tableRows[0]['label']); echo '
'; } elseif ($currentStep == 5) { echo $install->renderForm($userFormControls, '1/3', '1/4', '3/4'); } elseif ($currentStep > $maxStep) { echo '
恭喜,一切就绪!
'; echo '
有问题可查阅安装日志:' . $install->getLogFile() . '
'; echo '
为安全起见,请删除以下目录
'; echo '
' . $install->getInsallDirectory() . '
'; } echo'
'; if (!empty($error)) { echo sprintf('
Error: %s
', nl2br($error)); unset($error); } if (!empty($copy)) { echo sprintf('
', $copy); unset($copy); } ?>
回首页
欢迎使用 NexusPHP 安装程序,如有疑问,点击这里获取帮助。